STL适配器

容器适配器

特点

用某种顺序容器来实现(让已有的顺序容器以栈/队列的方式工作)

分类

1) stack: 头文件 <stack>     • 栈 -- 后进先出

2) queue: 头文件 <queue>    • 队列 -- 先进先出

3) priority_queue: 头文件 <queue>   • 优先级队列 -- 最高优先级元素总是第一个出列

注:容器适配器上没有迭代器 

       STL中各种排序, 查找, 变序等算法都不适合容器适配器


Stack

1.stack 是后进先出的数据结构

2.只能插入, 删除, 访问栈顶的元素

3.可用 vector, list, deque来实现

• 缺省情况下, 用deque实现

• 用 vector和deque实现, 比用list实现性能好


queue

1.可以用 list和deque实现,缺省情况下用deque实现。 它存储的容器对象为它来实现所有的功能。

2.它只允许在表的前端(front)进行删除操作,而在表的后端(back)进行插入操作。

3.先进先出,最先插入的元素将是最先被删除;反之最后插入的元素将最后被删除。


priority_queue

priority_dueue也限制了被控序列的存取,但它还有着一些额外的要求。它实质上也是一个队列,不过这个队列以一

个 谓词 来检测它里面哪个元素拥有最高的优先级。该模板类可以确保每次通过top,从它里面所取得的元素都是剩下

元素中优先级最高的那个。为了做到这一点,在每次通过push向它里面加入元素时,它所控制的整个序列都会在必要

时被重排。更确切的讲,它把被控序列当做一个堆来维护,使用了一些算法。

1.可以用vector和deque实现,缺省情况下用vector实现

2.priority_queue 通常用堆排序技术实现, 保证最大的元素总是在最前面

• 执行pop操作时, 删除的是最大的元素

• 执行top操作时, 返回的是最大元素的引用

3.默认的元素比较器是 less<T>


更详细见: http://blog.csdn.net/feitianxuxue/article/details/7250633


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值