STL—stack
【摘要】
文章目录
一、什么是stack二、stack的操作1.stack的定义2.stack容器内元素的访问3.stack中的函数(1)push()(2)top()(3)pop()(4)empty()(5...
文章目录
一、什么是stack
stack翻译为栈,是STL中实现的一个先进后出的容器,要使用stack,需要添加头文件#include <stack>
二、stack的操作
1.stack的定义
stack<typename> name;
其定义方法和其他的STL容器相同,typename
可以是任意基本数据结构或容器
2.stack容器内元素的访问
由于栈(stack)本身就是一种后进先出的数据结构,在STL中的stack只能通过top()
来访问栈顶元素
向栈中插入一个元素:s.push(x);
#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack<int> s;
for (int i = 1; i <= 5; i ++ ) s.push(i);
cout << s.top();
return 0;
}
输出结果:5
3.stack中的函数
(1)push()
s.push(x);
把x入栈,时间复杂度为O(1),实例见stack容器内元素的访问
(2)top()
s.top();
获得栈顶元素,时间复杂度为O(1),实例见stack容器内元素的访问
(3)pop()
s.pop();
用来弹出栈顶元素,时间复杂度为O(1)
#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack<int> s;
for (int i = 1; i <= 5; i ++ ) s.push(i);
for (int i = 1; i <= 3; i ++ ) s.pop();
//把 5 4 3 依次弹出
cout << s.top();
return 0;
}
输出结果为:2
(4)empty()
s.empty();
可以检测stack
内是否为空,返回true
为空,返回false
是非空,时间复杂度为O(1)
#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack<int> s;
if(s.empty()) cout << "EMPTY" << endl;
else cout << "NOT EMPTY" << endl;
for (int i = 1; i <= 5; i ++ ) s.push(i);
if(s.empty()) cout << "EMPTY" << endl;
else cout << "NOT EMPTY" << endl;
return 0;
}
输出结果为:
EMPTY
NOT EMPYTY
(5)size()
s.size();
返回stack
内元素的个数,时间复杂度为O(1)
#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack<int> s;
for (int i = 1; i <= 5; i ++ ) s.push(i);
cout << s.size();
return 0;
}
输出结果为:5
文章来源: chen-ac.blog.csdn.net,作者:辰chen,版权归原作者所有,如需转载,请联系作者。
原文链接:chen-ac.blog.csdn.net/article/details/116401728
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)