六一的部落格


关关难过关关过,前路漫漫亦灿灿。



先进先出 FIFO

从队尾进入,从队首离开

默认使用deque作为底层容器


头文件

1#include <queue>

队列支持的底层容器

顺序容器
array X
vector/string X
deque O
list O
forward_list X

队列操作与对底层容器的要求

底层实现
pop 出队(队首) pop_front
front 获取队首元素 front
back 获取队尾元素 back
push 入队(队尾) push_back
emplace 入队(队尾) emplace_back
1s.pop();        
2
3s.front();
4
5s.back();
6
7s.push(item);   
8
9s.emplace(args); 

示例

1deque<int> dq = {0, 2, 4, 6, 8, 1, 3, 5, 7, 9};
2
3queue<int> que(dq);
4
5cout << que.front() << endl;        // 0
6
7cout << que.back() << endl;        // 9

顺序容器适配器: 队列


先进先出 FIFO

从队尾进入,从队首离开

默认使用deque作为底层容器


头文件

1#include <queue>

队列支持的底层容器

顺序容器
array X
vector/string X
deque O
list O
forward_list X

队列操作与对底层容器的要求

底层实现
pop 出队(队首) pop_front
front 获取队首元素 front
back 获取队尾元素 back
push 入队(队尾) push_back
emplace 入队(队尾) emplace_back
1s.pop();        
2
3s.front();
4
5s.back();
6
7s.push(item);   
8
9s.emplace(args); 

示例

1deque<int> dq = {0, 2, 4, 6, 8, 1, 3, 5, 7, 9};
2
3queue<int> que(dq);
4
5cout << que.front() << endl;        // 0
6
7cout << que.back() << endl;        // 9