std::stack 的特点deque,也可使用 vector 或 list。stack 是封闭容器,不能遍历元素。push / pop / top / empty / size。std::stack<int> st; // 空栈,底层用 deque
std::stack<int, std::vector<int>> st_vec; // 用 vector 作为底层
std::stack<int, std::list<int>> st_list; // 用 list 作为底层
注意:底层容器必须支持 back()、push_back()、pop_back()。
std::deque<int> dq = {1, 2, 3};
std::stack<int> st(dq); // 栈顶为 3
| 成员函数 | 参数/重载 | 返回值 | 功能说明 |
|---|---|---|---|
push(val) |
单个值 | void |
将元素压入栈顶 |
emplace(args...) |
构造参数 | void |
原地构造栈顶元素(更高效) |
pop() |
无参数 | void |
弹出栈顶元素(不返回被删元素) |
top() |
无参数 | T& / const T& |
返回栈顶元素的引用 |
empty() |
无参数 | bool |
判断栈是否为空 |
size() |
无参数 | size_t |
返回栈中元素个数 |
swap(st2) |
另一个 stack<T> |
void |
与另一个 stack 交换内容 |