《C++ Primer》读书笔记-第九章 06 容器适配器

作者:马志峰
链接:https://zhuanlan.zhihu.com/p/24575946
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

声明:

  • 文中内容收集整理自《C++ Primer 中文版 (第5版)》,版权归原书所有。
  • 原书有更加详细、精彩的释义,请大家购买正版书籍进行学习。
  • 本文仅作学习交流使用,禁止任何形式的转载

正文

容器、迭代器和函数都有适配器。

适配器是标准库中的一个通用概念。

它是一种机制,能使某种事物的行为看起来像另外一种事物一样。

实际上还是一个类。

顺序容器有三个适配器:stack、queue和priority_queue

构造函数

  1. 默认构造函数:创建一个空对象
  2. 接受一个容器的构造函数:拷贝该容器来初始化适配器
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的解释,书中有个错误,参考

en.cppreference.com/w/c

pop执行删除操作

如果大家在看书时发现有错误,可以到这里更新

github.com/githubwoniu/

猜你喜欢

转载自blog.csdn.net/qq_26751117/article/details/54025437