1.stack容器
函数原型
int n = stack.pop()的写法是不对的,因为返回值是Null,可以先使用int n = stack.top(),然后再
stack.pop();
2.queue容器函数原型
3.list容器:插入和删除操作都不会造成原有迭代器的失效,这在vector中是不成立的
vector和list容器是stl中最常用的两个容器

函数原型
函数原型
函数原型
函数原型
函数原型

sort函数是标准算法,在使用的时候需要加上#include <algorithm>头文件,但是list容器不支持随机访问迭代
器,不可以使用标准算法,只能使用内部的成员函数,因此需要以L.sort()和L.reverse()的形式来使用,而不能
直接使用sort(),直接使用的时候需要加上两个迭代器,成员函数的方法使用就不需要。

**只有vector和deque容器支持随机访问迭代器**,因此都可以直接使用标准算法类似reverse和sort函数,需要在
括号中加上前后范围迭代器

随机访问可以理解为按照数组的方式在内存中顺序存放,只需要du根据首地址和相应下标就能寻址到相应的元素

排序的类型如果是自定义的数据类型,需要自己定义排序规则
例:按照年龄进行排序,年龄相同按照身高排序
//默认是从小到大排序,也可以利用下面的函数使其变成从大到小排序
1.自定义一个函数
bool Compare(Person &p1, Person *p2)
{
	if(p1.age == p2.age)
	{
		return p1.height > p2.heigth;
	}
	else
	{
		return p1.age > p2.age;
	}
}
L.sort(Compare);
2.自定义一个仿函数
class Compare
{
public:
	bool operator()(Person &p1, Person &p2)	
	if(p1.age == p2.age)
	{
		return p1.height > p2.heigth;
	}
	else
	{
		return p1.age > p2.age;
	}
};
L.sort(Compare());		//注意这里Compare后面也要加上括号
3.利用STL中的自建函数
sort(v.begin(), v.end(),greater<int>())
L.sort(greater<int>());		//注意区分是否支持随机访问迭代器
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐