适配器

  举个例子,以插座为例。插座的线插头是两口的,但是经过转换后插板却可以提供给你两口或者三口的接口。这个插座就可以称为插口适配器。
今天学习的stack,queue,priority_queue 都是基于STL现有容器衍生出来的“另一种风貌”,它们都不提供迭代器,不允许自身遍历行为

stack

  • 栈中存储的元素满足“后进先出(简称LIFO)”的准则,
  • 底层默认采用 deque 基础容器的 stack 适配器。满足条件的基础容器有 vector、deque、list

queue

  • queue容器适配器存储数据具有“先进先出(简称 "FIFO" )”的特点
  • queue 容器适配器底层容器可以选择 deque(STL默认实现) 和 list。手动指定 std::queue<int, std::list> values;
  • 可以用基础容器来初始化 queue 容器适配器,只要该容器类型和 queue 底层使用的基础容器类型相同即可

priority_queue

  • 底层采用默认的 vector 容器,排序方式也采用默认的 std::less 方法。满足条件的基础容器有vector、deque。
  • 优先级队列之所以总能保证优先级最高的元素位于队头,最重要的原因是其底层采用堆数据结构(完全二叉树)存储结构
posted on 2021-04-07 23:36  逆流而上の鱼  阅读(123)  评论(0编辑  收藏  举报