STL容器适配器:stack核心总结
std::stack是一种适配器容器,它提供了一个后进先出(LIFO)的数据结构。
std::stack的模板格式:
template< T, Container = std::stack<T> > class stack;
其中:
- T: 数据类型
- Container: 底层容器类型,默认是std::deque,还可以是std::vector或std::list。
成员函数
stack<int> s1;                       // 无元素
stack<int> s2(s1);                   // 使用另外一个stack拷贝构造
stack<int> s3(std::move(s2));        // 使用另外一个stack移动构造
std::deque<int> dq {1, 2, 3, 4, 5};
stack<int> q4(dq);                   // 使用容器初始化
stack<int, std::vector<int>> q5;     // 使用自定义底层容器
访问
| 成员函数 | 函数说明 | 
|---|---|
| top() | 返回对栈顶元素的引用。 | 
修改
| 成员函数 | 说明 | 
|---|---|
| push(const T& value) | 将一个新元素 value压入栈顶。 | 
| emplace(Args&&... args) | 通过就地构造一个新元素,并将其压入栈顶。 | 
| pop() | 移除栈顶元素。 | 
| swap(stack& other) | 与另一个 stack交换内容。 | 
容量
| 成员函数 | 说明 | 
|---|---|
| empty() | 如果栈中没有元素,则返回 true。 | 
| size() | 返回栈中元素的数量。 |