Stack用法详解
1. 什么是stack容器?
stack(栈)容器是一种先进后出的容器,两端只有一个开口,只能这个开口插入和删除数据。
在C++中,使用stack需要包含头文件#include
想具体了解栈底读者可以看看这篇文章。
链接:link
2. stack的初始化函数
stack<int> s1; //默认构造函数初始化
stack<int> s2(s1); //拷贝函数初始化
stack<int> s3=s1; //赋值操作符初始化
要注意的是,stack没有迭代器。
3. Stack的存取函数
push(elem); //向栈顶添加元素
pop(); //从栈顶移除第一个元素
top(); //返回栈顶元素
案例:
#include<iostream>
#include<stack>
using namespace std;
int main()
{
stack<int> s;
s.push(1);
s.push(2);
s.push(3);
s.pop();
int n=s.top();
cout<<n<<endl;
return 0;
}
4. stack的大小函数
empty(); //判断堆栈是否为空
size(); //返回堆栈的大小
案例:
#include<iostream>
#include<stack>
using namespace std;
int main()
{
stack<int> s;
s.push(1);
s.push(2);
s.push(3);
cout<<s.e4mpty()<<endl;
cout<<s.size()<<endl;
return 0;
}
5. stack实践案例
题目:输入一个十进制正整数,输出它的二进制。
解析:
#include<iostream>
#include<stack>
using namespace std;
int main()
{
int n,temp,temp2;
cin>>n;
stack<int>s;
while(n){
temp=n%2;
s.push(temp);
n/=2;
}
while(!s.emtuy())
{
temp2=s.top();
cout<<temp2;
s.pop();
}
return 0;
}