[C++]STL - 队列(Queue) 栈(Stack) 链表(list)
STL - 队列(Queue) 栈(Stack) 链表(list)
Queue 队列
结构特征
这是一种线性储存结构
其数据有先进先出的特点
这种特点被称为FIFO(First In First Out)
可以把这种结构想象成一根管子
语法用法
定义
queue<int> q;
//queue<数据类型> 队列名称;
操作
- 入队
q.push(1);
//q.push(入队变量);
- 出队
q.pop();
上面提到过队列的 FIFO 的特性
所以这里入队只能从队首进入
出队只能从队尾出去
- 访问队首元素
q.front()
- 访问队尾元素
q.back()
- 判断队列是否为空
q.empty()
- 取队列中的元素个数
q.size()
Stack 栈
结构特征
和 Queue 对应 Stack 的特征是 LIFO(Last In First Out)
就是最先进去的被压在最下面
最后进去的可以先出去
语法用法
定义
stack<int> s;
//stack<数据类型> 栈名称;
操作
- 入栈 & 出栈
s.push(1); //入栈
s.pop(); //出栈
- 返回栈顶元素
s.top()
- 返回栈中元素个数
s.size()
- 判断栈是否为空
s.empty()
List 链表
结构特征
语法用法
定义
list<int> l1;
//list<数据类型> 链表名称;
list<int> l2(n);
//创建含有 n 个元素的list
list<int> l3(m,n);
//创建含有 m 个 n元素 的list
list<int> l4(l3);
//使用l3初始化l4
list<int> l5(l4.begin(),l4.end());
//用指针使l4初始化l5
操作