Loading... ## stack 容器基本概念 stack是一种先进后出(Firstt In Out,FILO),它只有一个出口,形如图所示,stack容器允许新增元素,移除元素,但是除了最顶端外,没有任何其他方法可以存取stack的其他元素。换言之,stack不允许有遍历行为,有元素入栈的操作为push,将元素推出stack的操作成为pop ![image.png](https://blog.fivk.cn/usr/uploads/2021/04/404106754.png) ## stack没有迭代器 Stack所有元素的进出都必须符合”先进后出”的条件,只有stack顶端的元素,才有机会被外界取用。Stack不提供遍历功能,也不提供迭代器 ## stack 常用API **stack构造函数** ```c++ stack<T> stkT;//stack采用模板类实现, stack对象的默认构造形式: stack(const stack &stk);//拷贝构造函数 ``` **stack赋值操作** ```c++ stack& operator=(const stack &stk);//重载等号操作符 ``` **stack数据存取操作** ```c++ push(elem);//向栈顶添加元素 pop();//从栈顶移除第一个元素 top();//返回栈顶元素 ``` **stack大小操作** ```c++ empty();//判断堆栈是否为空 size();//返回堆栈的大小 ``` ## 案例: ```C++ #include<iostream> #include<stack> #include<algorithm> using namespace std; /* stack构造函数 stack<T> stkT;//stack采用模板类实现, stack对象的默认构造形式: stack(const stack &stk);//拷贝构造函数 stack赋值操作 stack& operator=(const stack &stk);//重载等号操作符 stack数据存取操作 push(elem);//向栈顶添加元素 pop();//从栈顶移除第一个元素 top();//返回栈顶元素 stack大小操作 empty();//判断堆栈是否为空 size();//返回堆栈的大小 */ int main() { stack<int> v; //入栈 v.push(10); v.push(14); v.push(5); v.push(8); v.push(9); v.push(3); v.push(20); while (!v.empty()) { //输出栈顶元素 cout << v.top() << endl; cout << "栈的大小为:" << v.size() << endl << endl; //弹出栈顶元素 v.pop(); } cout << "栈的大小为:" << v.size() << endl << endl; return 0; } ``` 最后修改:2021 年 04 月 16 日 © 禁止转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏