STL学习系列四:Stack容器
Stack简介
- stack是堆栈容器,是一种“先进后出”的容器。
- stack是简单地装饰deque容器而成为另外的一种容器。
- #include <stack>
1.stack对象的默认构造
stack采用模板类实现, stack对象的默认构造形式: stack <T> stkT;
stack <int> stkInt; //一个存放int的stack容器。
stack <float> stkFloat; //一个存放float的stack容器。
stack <string> stkString; //一个存放string的stack容器。
//尖括号内还可以设置指针类型或自定义类型。
2.stack的push()与pop()方法
- stack.push(elem); //往栈头添加元素
- stack.pop(); //从栈头移除第一个元素
#include<iostream>
using namespace std;
#include <stack>
void objPlay2()
{
stack<int> stkInt;
stkInt.push(); //放进去1
stkInt.push(); //放进去3
stkInt.pop(); //弹出来一个元素
stkInt.push(); //放进去5
stkInt.push(); //放进去7
stkInt.push(); //放进去9 此时元素就是1,5,7,9
stkInt.pop(); //弹出来一个元素
stkInt.pop();//弹出来一个元素 此时元素就是1,5 }
int main()
{
objPlay2();
return ;
}
3.stack对象的拷贝构造与赋值
- stack(const stack &stk); //拷贝构造函数
- stack& operator=(const stack &stk); //重载等号操作符
void objPlay3()
{
stack<int> stkIntA;
stkIntA.push();
stkIntA.push();
stkIntA.push();
stkIntA.push();
stkIntA.push();
stack<int> stkIntB(stkIntA); //拷贝构造
stack<int> stkIntC;
stkIntC = stkIntA; //赋值 }
4.stack的数据存取
- stack.top(); //返回最后一个压入栈元素
void objPlay4()
{
stack<int> stkIntA;
stkIntA.push();
stkIntA.push();
stkIntA.push();
stkIntA.push();
stkIntA.push(); int iTop = stkIntA.top(); //获取栈顶元素,那就是9,top只是获取栈顶元素,pop是弹出栈顶元素
stkIntA.top() = ; // }
5.stack的大小
- stack.empty(); //判断堆栈是否为空
- stack.size(); //返回堆栈的大小
void objPlay5()
{
stack<int> stkIntA;
stkIntA.push();
stkIntA.push();
stkIntA.push();
stkIntA.push();
stkIntA.push(); if (!stkIntA.empty())
{
int iSize = stkIntA.size(); //5个元素
} }
下面是以上的所有代码:
#include<iostream>
using namespace std;
#include <stack>
void objPlay2()
{
stack<int> stkInt;
stkInt.push(); //放进去1
stkInt.push(); //放进去3
stkInt.pop(); //弹出来一个元素
stkInt.push(); //放进去5
stkInt.push(); //放进去7
stkInt.push(); //放进去9 此时元素就是1,5,7,9
stkInt.pop(); //弹出来一个元素
stkInt.pop();//弹出来一个元素 此时元素就是1,5 }
void objPlay3()
{
stack<int> stkIntA;
stkIntA.push();
stkIntA.push();
stkIntA.push();
stkIntA.push();
stkIntA.push();
stack<int> stkIntB(stkIntA); //拷贝构造
stack<int> stkIntC;
stkIntC = stkIntA; //赋值 }
void objPlay4()
{
stack<int> stkIntA;
stkIntA.push();
stkIntA.push();
stkIntA.push();
stkIntA.push();
stkIntA.push(); int iTop = stkIntA.top(); //获取栈顶元素,那就是9,top只是获取栈顶元素,pop是弹出栈顶元素
stkIntA.top() = ; // }
void objPlay5()
{
stack<int> stkIntA;
stkIntA.push();
stkIntA.push();
stkIntA.push();
stkIntA.push();
stkIntA.push(); if (!stkIntA.empty())
{
int iSize = stkIntA.size(); //5个元素
} }
int main()
{
objPlay2();
objPlay3();
objPlay4();
objPlay5(); return ;
}
STL学习系列四:Stack容器的更多相关文章
- 标准模板库(STL)学习探究之vector容器
标准模板库(STL)学习探究之vector容器 C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被 ...
- 标准模板库(STL)学习探究之stack
标准模板库(STL)学习探究之stack queue priority_queue list map/multimap dequeue string
- scrapy爬虫学习系列四:portia的学习入门
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...
- DocX开源WORD操作组件的学习系列四
DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...
- .net reactor 学习系列(四)---.net reactor应用场景
原文:.net reactor 学习系列(四)---.net reactor应用场景 前面已经学习了.net reactor一些基础知识,现在准备学习下实际的应用场景,只是简单的保护和 ...
- STL学习系列之一——标准模板库STL介绍
库是一系列程序组件的集合,他们可以在不同的程序中重复使用.C++语言按照传统的习惯,提供了由各种各样的函数组成的库,用于完成诸如输入/输出.数学计算等功能. 1. STL介绍 标准模板库STL是当今每 ...
- Identity Server4学习系列四之用户名密码获得访问令牌
1.简介 Identity Server4支持用户名密码模式,允许调用客户端使用用户名密码来获得访问Api资源(遵循Auth 2.0协议)的Access Token,MS可能考虑兼容老的系统,实现了这 ...
- 侯捷STL学习(九)--关联式容器(Rb_tree,set,map)
layout: post title: 侯捷STL学习(九) date: 2017-07-21 tag: 侯捷STL --- 第十九节 容器rb_tree Red-Black tree是自平衡二叉搜索 ...
- STL学习系列九:Map和multimap容器
1.map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供基于key的快速检索能力. map中key值是唯一的.集合中的元素按一定的顺 ...
随机推荐
- JavaScript编程规范
最近看NodeJS中,有一部分写JS约定俗成的编程规范(附录B,详情参考附件),感觉在实际工作中能用到, 大致意思分享给大家,详情参考附件: 1.缩进:建议两空格 作为Node.js代码的缩进标记: ...
- Button的图像位置设置
[button setImageEdgeInsets:UIEdgeInsetsMake(2, 70, 2,70 )]; [button setImageEdgeInsets:UIEdgeInsetsM ...
- [原]sdut2624 Contest Print Server (大水+大坑)山东省第四届ACM省赛
本文出自:http://blog.csdn.net/svitter 原题:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&am ...
- Oracle VM VirtualBox 设置本机与虚拟机共享文件
文章转载自http://wenku.baidu.com/link?url=5uZ1xWnGC55FGW2XUqzLVdttRcik2xCqwRKEdh6z-nZJ63UQn3j2750ES_q4Oro ...
- iOS中UIKit——UIButton设置边框
UIButton *testButton = [UIButton buttonWithType:UIButtonTypeSystem]; [testButton setFrame:CGRectMake ...
- Silverlight - GPU加速
1. 在Silverlight plug-in上设置 <param name="enableGPUAcceleration" value="true" / ...
- jquery之val()和attr("value")
1.attr("value")=原来的默认值 ,而val()=用户改变的值.
- ip的正则表达式 完美版
IP地址的长度为32位2进制,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用英文句点“.”隔开.例如:IP地址为10.0.0.100. 分析IP地址的每组数特点:百位,十 ...
- mariadb的explain分析及InnoDB存储引擎
id: 当前查询语句中,每个SELECT语句的编号, id: 1 表示简单类型的查询 复杂类型的查询有三种:简单子查询,用于FROM中的子查询,联合查询:UNION 注意:UNION查询的分 ...
- jquery不熟悉的方法
1.jquery有一个筛选api find. 语法很简单,比如: HTML 代码: <p><span>Hello</span>, how are you?</ ...