文章目录
  1. stack容器适配器
  2. queue容器适配器
  3. priority_queue容器适配器

stack容器适配器

stack基于deque容器进一步封装,只能从栈顶插入与删除。定义于<stack>

构造

1
2
3
4
5
/* 默认初始化:定义一个空的stack容器 */
stack<int> istack;

/* 拷贝复制 */
stack<int> istack(istack_0);

插入

1
2
/* 从栈顶添加一个值为num的元素 */
istack.push(num);

删除

1
2
/* 从栈顶删除一个元素 */
istack.pop();

queue容器适配器

queue容器基于dqueue容器进一步封装,只支持从队头删除,从队尾插入。定义于<queue>

构造

1
2
3
4
5
/* 默认初始化:定义一个空的queue容器 */
queue<int> iqueue;

/* 拷贝复制 */
queue<int> iqueue(iqueue_0);

插入

1
2
/* 从queue容器尾部添加一个值为num的元素 */
iqueue.push(num);

删除

1
2
/* 从queue容器头部删除一个元素 */
iqueue.pop();

priority_queue容器适配器

priority_queue容器适配器的定义如下,默认基于vector容器。除了具有queue容器适配器的特性——只支持从队头删除,从队尾插入之外,它还会将元素按照优先级大小从大到小进行排序。定义于<priority_queue>

1
2
3
4
5
6
template <typename T,
typename Container=std::vector<T>,
typename Compare=std::less<T> >
class priority_queue{
/* ... ... */
}

插入

1
2
3
4
/* 从priority_queue容器尾部添加一个值为num的元素
* 并按照优先级进行排序
*/
ipriority_queue.push(num);

删除

1
2
/* 从priority_queue容器头部删除一个元素 */
ipriority_queue.pop();