STL容器适配器

STL 中包含三种适配器:栈stack 、队列queue 和优先级priority_queue 。

适配器是容器的接口,它本身不能直接保存元素,它保存元素的机制是调用

另一种顺序容器去实现,即可以把适配器看作“它保存一个容器,这个容器再保
存所有元素”。
STL 中提供的三种适配器可以由某一种顺序容器去实现。默认下stack 和
queue 基于deque 容器实现,priority_queue 则基于vector 容器实现。当然在创
建一个适配器时也可以指定具体的实现容器,创建适配器时在第二个参数上指定
具体的顺序容器可以覆盖适配器的默认实现。
由于适配器的特点,一个适配器不是可以由任一个顺序容器都可以实现的。
栈stack 的特点是后进先出,所以它关联的基本容器可以是任意一种顺序容
器,因为这些容器类型结构都可以提供栈的操作有求,它们都提供了push_back 、
pop_back 和back 操作。
队列queue 的特点是先进先出,适配器要求其关联的基础容器必须提供
pop_front 操作,因此其不能建立在vector 容器上。
(1) Stacks(堆栈)
C++ Stack(堆栈)是一个容器类的改编,为程序员提供了堆栈的全部功能,—
—也就是说实现了一个先进后出(FILO)的数据结构。
1.empty() 堆栈为空则返回真
2.pop() 移除栈顶元素
3.push() 在栈顶增加元素
4.size() 返回栈中元素数目
5.top() 返回栈顶元素
(2) C++ Queues(队列)
C++队列是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。
1.back() 返回一个引用,指向最后一个元素
2.empty() 如果队列空则返回真
3.front() 返回第一个元素
4.pop() 删除第一个元素
5.push() 在末尾加入一个元素
6.size() 返回队列中元素的个数
(3) Priority Queues(优先队列)
C++优先队列类似队列,但是在这个数据结构中的元素按照一定的断言排列有
序。
1.empty() 如果优先队列为空,则返回真
2.pop() 删除第一个元素

3.push() 加入一个元素
4.size() 返回优先队列中拥有的元素的个数
5.top() 返回优先队列中有最高优先级的元素

你可能感兴趣的:(STL容器适配器)