C++ 标准模板库(STL)-stack
主要介绍一下C++11版本中标准模板库中栈的用法,希望可以帮到需要用的人。
#include <iostream> #include <stack> #include <list> #include <vector> using namespace std; //c++11 STL stack typedef int T; int main() { //声明 //底层容器默认为 deque stack<T> test; //底层容器为 list stack<T, list<T>> test1; /* stack<typename T, typename Container=deque<T>> stack 的模板有两个参数,第一个为存储的元素的类型,第二个是底层容器的类型(默认为deque,也可声明为其他类型,如list) */ //初始化 vector<T> data(10, 1);//vector初始化10个值为1的元素 stack<T, vector<T>> test3(data);//stack不可以在初始化列表用对象初始化,但是可以用另一个容器初始化 stack<T, vector<T>> test4{ test3 }; stack<T, vector<T>> test4( test3 );//stack可以用拷贝构造函数进行初始化,两种括号均可 //成员函数 test.top();//返回栈顶元素的引用,类型为T& test.size();//返回栈顶元素的个数 test.pop();//弹出栈顶元素,无返回值, test.push(1);//压栈,无返回值 test.empty();//判断栈是否为空,空返回true,非空返回false test.emplace();//添加新的栈顶元素,无返回值,push的所有操作emplace都可以进行,但emplace可以在传入时构造函数 //push与emplace详细区别 详细参考 https://blog.csdn.net/Kprogram/article/details/82055673 stack<T> test0; test.swap(test0);//交换两个栈中所有元素,前提是类型必须相同 return 0; }