一、stack(栈):先进后出
1.栈是一种只能从表的一端存取数据且遵循 "先进后出" 原则的线性存储结构。
栈的开口端被称为栈顶;相应地,封口端被称为栈底。
向栈中添加元素,此过程被称为"进栈"(入栈或压栈);
从栈中提取出指定元素,此过程被称为"出栈"(或弹栈);
2.栈的实现
顺序栈:采用顺序存储结构可以模拟栈存储数据的特点,从而实现栈存储结构;
链栈:采用链式存储结构实现栈结构;
3.接口使用
stack(const container_type& ctnr = container_type()) 构造空的栈
bool empty() const 检测stack是否为空
size_type size() const 返回stack中元素的个数
value_type& top() 返回栈顶元素的引用
const value_type& top() const 返回栈顶元素的const引用
void push (const value_type& val) 将元素val压入stack中
void pop() 将stack中尾部的元素弹出
template <class... Args> void emplace (Args&&... args) (C+11) 在stack的栈顶构造元素
void swap (stack& x) (C++11) 交换两个栈中的元素
二、queue