stack,queue,list容器和随机访问

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>());		//注意区分是否支持随机访问迭代器
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值