#include <stack>
头文件
using namespace std;
作用
这个很清楚了,FILO
运用在:括号匹配、波兰式计算问题上(未完待续)
创建
template <class T, class Container = deque<T> > class stack;
- 一个参数,默认使用deque容器
stack<typename T, typename Container=deque<T>>
- 两个参数,使用自定义的数据结构,如:list
stack<string, list<string>> mystack;
vectorstack<int, vector<int>> mystack;
list<double> values {1.414, 3.14159265, 2.71828};
stack<double, list<double>> my_stack (values);
- 拷贝构造函数
stack<double, list<double>>copy_stack {my_stack};
成员函数
size
size_type size() const;//Member type size_type is an unsigned integral type.
top
size_type size() const;//Member type size_type is an unsigned integral type.
empty
bool empty() const;
push
- push(const T& obj):可以将对象副本压入栈顶。这是通过调用底层容器的 push_back() 函数完成的。
push(T&& obj):以移动对象的方式将对象压入栈顶。这是通过调用底层容器的有右值引用参数的 push_back() 函数完成的。
pop():弹出栈顶元素。
emplace()
用传入的参数调用构造函数不同于push的点,在栈顶生成对象和push一样的操作了。
swap
- swap(stack
& other_stack):将当前栈中的元素和参数中的元素交换。参数所包含元素的类型必须和当前栈的相同。对于 stack 对象有一个特例化的全局函数 swap() 可以使用。