一、介绍
C++的queue容器又被称为队列,存储特点是:先进先出。
二、数据结构
queue的先进先出特点指的是,从队尾插入元素,从队头取出元素:
| 队尾 | 存元素 |
| 队头 | 取元素 |

queue由于先进先出的特点,一般情况下不允许遍历。
三、queue的使用
3.1 queue初始化
queue容器常用的两个构造函数如下所示:
| 声明 | 解释 |
| queue<T> q | 将q初始化为空队列 |
| queue<T> q(queue<T> q1) | 拷贝函数,将队列q1的全部元素拷贝给q1 |
queue<int> q0;//空队列
queue<int> q1(q0);//拷贝函数
3.2 queue赋值
| 声明 | 解释 |
| stack& operator=(const stack &s) | 重载=运算符 (有关重载运算符,可以看之前写的《C++重载运算符》) |
queue<int> q0;//空队列
queue<int> q1 = q0;//使用重载饿的等号运算符赋值
3.3 queue数据存取
| 声明 | 解释 |
| push(T elem) | 从队尾向栈添加一个元素elem |
| pop() | 从队头向栈删除一个元素 |
| back() | 返回当前队尾元素的值 |
| front() | 返回当前队头元素的值 |
queue<int> q0;//空队列
q0.push(666);//q0 = [666]
q0.push(777);//q0 = [666, 777]
cout << q0.back() << endl;//777
cout << q0.front() << endl;//666
q0.pop();//q0 = [777]
3.4 queue容量与大小
| 声明 | 解释 |
| size() | 返回当前队列中元素的个数 |
| empty() | 判断队列是否为空 |
queue<int> q;
for (int i = 0; i < 10; i++) {
q.push(i);
}//q = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
cout << s0.size() << endl;//10
cout << boolalpha << s0.empty() << endl;//false
294




被折叠的 条评论
为什么被折叠?



