作者:马志峰
链接:https://zhuanlan.zhihu.com/p/24575946
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://zhuanlan.zhihu.com/p/24575946
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
声明:
- 文中内容收集整理自《C++ Primer 中文版 (第5版)》,版权归原书所有。
- 原书有更加详细、精彩的释义,请大家购买正版书籍进行学习。
- 本文仅作学习交流使用,禁止任何形式的转载
正文
容器、迭代器和函数都有适配器。
适配器是标准库中的一个通用概念。
它是一种机制,能使某种事物的行为看起来像另外一种事物一样。
实际上还是一个类。
顺序容器有三个适配器:stack、queue和priority_queue
构造函数
- 默认构造函数:创建一个空对象
- 接受一个容器的构造函数:拷贝该容器来初始化适配器
stack<int> stk;
stack<int> stk(deq);
- stack和queue默认是基于deque实现的
- priority_queue默认是基于vrcotr实现的
但是,我们可以在创建适配器时进行修改
stack<string, vector<string>> str_stk;
但是这种修改也是有一定的限制的
- stack: 除array和forward_list外其他
- queue: 仅list和deque
- priority_queue: 仅vector和deque
不需要硬背,具体解释参考原书 P329
栈适配器
stack
支持的操作
- push //将元素压入栈
- emplace //创建一个元素并压力栈
- pop //删除栈顶元素
- top //返回栈顶元素的值
队列适配器
queue和priority_queue
支持的操作
- pop
- front
- back //仅queue支持
- top //仅priority_queue支持
- push
- emplace
关于pop的解释,书中有个错误,参考
http://en.cppreference.com/w/cpp/container/queue/pop
pop执行删除操作
如果大家在看书时发现有错误,可以到这里更新
https://github.com/githubwoniu/learnprogram/tree/master/primer