STL之stack(栈)

来源:互联网 发布:java二维数组 编辑:程序博客网 时间:2024/06/06 06:30

栈的操作如下:
1.

stack<data_type>name;//如:stack<int>z;定义一个数据类型为data_type的栈name。

2.

stack<data_type>name(name2);//如:stack<int>z(z2);将栈name2中的元素复制到一个新栈name中。

3.

name.push(variable);//如:z.push(a);将a压入栈z的顶端。

4.(栈不能为空的情况下)

name.pop();//如:z.pop();弹出一个z栈的栈顶元素。

5.(栈不能为空的情况下)

variable=name.top();//如:k=z.top();将z栈的栈顶元素赋值给一个变量k。

6.

variable=name.size();//如:k=z.size();将z栈的元素个数赋值给一个变量k。

7.

name.empty();//如:z.empty();检验栈是否为空,空返回为1,非空返回为0;

总体操控样例如下:

#include<iostream>#include<cstdio>#include<stack>using namespace std;typedef long long ll;inline ll read()//输入 {    char ls=getchar(),k=0;for(;ls<'0'||ls>'9';k=ls,ls=getchar());    ll x=0;for(;ls>='0'&&ls<='9';ls=getchar())x=x*10+ls-'0';    if(k=='-')x=-x;return x;}stack<ll>z;//stack<data_type>name;定义栈z 类型long long int main(){    ll a[12]={1,2,3,4,5,6,7,8,9,10};    for(int i=0;i<=9;++i)    z.push(a[i]);//将a数组的元素依次压入栈顶     cout<<z.size()<<endl;//输出栈中的元素个数共10个     cout<<z.top()<<endl;//返回栈顶元素10     z.pop();     cout<<z.top()<<endl;//10被弹出,返回栈顶元素9     cout<<z.empty()<<endl;//此时栈不为空,返回0    stack<ll>z2(z);//复制栈z到新栈z2    cout<<z2.size()<<endl;//输出z2中的元素个数共9个     for(int i=0;i<=8;++i)    {        cout<<z2.top()<<" ";//检验复制结果,依次弹出栈中的元素         z2.pop();    }cout<<endl;     cout<<z2.empty()<<endl;//此时栈为空,返回1     //cout<<z2.top()<<endl;栈空时运行这句话内存会崩溃,应用程序错误    //所以输出栈时一定要保证栈不为空     return 0;}
0 0
原创粉丝点击