C++ STL 之 stack
2024-10-06 17:20:36
stack 是一种先进后出(first in last out,FILO)的数据结构,它只有一个出口,stack 只允许在栈顶新增元素,移除元素,获得顶端元素,但是除了顶端之外,其他地方不允许存取
元素,只有栈顶元素可以被外界使用,也就是说 stack 不具有遍历行为,没有迭代器。
特性总结: 栈不能遍历,不支持随机存取,只能通过 top 从栈顶获取和删除元素.
#include <iostream>
#include <stack>
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();//返回堆栈的大小 void test01()
{
// 初始化
stack<int> s1;
stack<int> s2(s1);
// stack 操作
s1.push();
s1.push();
s1.push();
s1.push();
cout << "栈顶元素:" << s1.top() << endl;
while (!s1.empty())
{
cout << s1.top() << " ";
s1.pop();
}
cout << endl;
cout << "size: " << s1.size() << endl;
cout << "------------------" << endl;
} int main()
{
test01();
getchar();
return ;
}
最新文章
- Maven+Spring+Hibernate+Shiro+Mysql简单的demo框架(二)
- python学习之元组
- 设计模式之Facade模式
- HDu 2830 Matrix Swapping II(dp)
- Yeoman generators 创建 ASP.NET 应用程序
- git查看每个版本间的差异
- MySQL5.6新特性
- SpringBoot+Mybatis+Freemark 最简单的例子
- 洛谷 [P2296] 寻找道路
- 3064: Tyvj 1518 CPU监控
- svn中出现各种感叹号说明
- vuex 状态管理 通俗理解
- scipy 安装错误及解决
- Redis宕机的问题
- Github 指令上手 --- 分支
- 【BZOJ1303】[CQOI2009]中位数图(模拟)
- android开发中遇到的一些问题
- mysql 用户及赋予权限
- Python自动化之跨域访问jsonp
- Hive中创建结构体、数组以及map