栈的特点:
①先进入栈的元素会放在栈的底部(先进后出)
②取出元素的时候,先取出顶部元素(后进先出)
③栈大小是有限的
a.如果栈满了,不能放进元素
b.如果栈空,不能取出元素
导入c++库stack以使用栈
#include<stack>
定义一个int类型的栈
stack <int> s;
stack的基本操作有:
1.入栈:如s.push(x);
2.出栈:如 s.pop().注意:出栈操作只是删除栈顶的元素,并不返回该元素。
3.访问栈顶:如s.top();
4.判断栈空:如s.empty().当栈空时返回true。
5.访问栈中的元素个数,如s.size();
6.top() 返回栈顶元素,并不会移除这个元素(注意,返回的是栈顶元素的引用)
清空栈的操作:
stack<int> stk
1.循环调用pop()函数,逐个移除栈中元素,直到栈为空
2.stk = {};
#include<iostream>
#include<stack> //导入以使用栈
using namespace std;stack <int> s; //定义了一个int类型的栈int main()
{int x;for (int i = 1; i <= 4; i++){cin >> x;s.push(x); //元素入栈}int n = s.size();cout << "栈内的元素个数为" << n << endl;s.top() = 2;//直接修改栈顶元素while (!s.empty()) //当栈不为空时{cout << s.top()<<" "; //返回栈顶元素s.pop();//栈顶元素出栈(删除)}if(s.empty()) cout<< endl <<"栈为空" << endl;//当栈为空时,不能用top()函数访问栈顶元素或进行修改s.push(999);cout << s.top() << endl;cout << "----------------------------------------------------" << endl;//清空栈的操作:stack<int> stk;stk.push(1);stk.push(2);stk.push(3);stk = {};if (stk.empty()) cout << "栈为空" << endl;else cout << "栈中还有元素" << endl;return 0;
}