stack:栈,先进后出,操作方法相对其它容器来说比较少,具有以下特性:
1、LIFO 后进先出,与队列相反,队列时FIFO(先进先出)
2、没有迭代器访问。
3、C++ 11标准中新增了两个接口,如下:
emplace():在栈顶添加一个新元素
swap():两个栈相互交互,如:栈A大小2,栈B大小3,交换后栈A大小3,栈B大小2
其它方法测试代码如下:
#include <iostream> #include <stack> using namespace std; int main(int argc, char *argv[]) { int iRet = 0; std::stack<int> mystack; for (int i=0; i<5; ++i) mystack.push(i);//initialize the stack,0,1,2,3,4 std::cout<<"stack size......"; std::cout<<mystack.size()<<std::endl; std::cout << "Popping out elements..."; while (!mystack.empty()){ std::cout << ' ' << mystack.top();//top stack 4,3,2,1,0 mystack.pop();//pop stack 4,3,2,1,0 } std::cout << '\n'; if(mystack.empty()) std::cout<<"mystack is empty...."<<std::endl; std::cout<<"afther pop mystack size:"<<mystack.size()<<std::endl; std::cout<<"use c++ 11 standard funcation initialize stack mystack....."<<std::endl; return iRet; }
结果输出如下: