STL中stack小结
(1)为了运用stack,你必须包含头文件<stack>:#include<stack> (2)在头文件中stack定义如下:
namespace std{
template <class T, class Container = deque<T> >
class stack;
}
第一个template参数代表元素型别,带有默认值的第二个参数用来定义stack内部存放元素所用的实际容器,缺省采用deque。之所以采用deque而非vector,是因为deque移除元素时会释放内存并且不必在重新分配时复制全部元素。实际上stack只是很单纯的把各项操作转化为内部容器的对应调用,你可以使用任何序列式容器来支持stack,只要它们支持back(),push_back(),pop_back()等动作就行了。 (3)stack的各项操作:
stack::stack()默认构造函数,产生一个空stack explicit stack::stack(const Container& cont)
产生一个stack,并以容器cont内的元素为初值(复制) size_type stack::size() const
返回元素个数 bool stack::empty() const
判断stack是否为空 void stack::push(const value_type& elem)
将elem的副本插入stack使其成为新的第一个元素 value_type& stack::top()
const value_type& stack::top() const
返回stack的栈顶元素,调用者必须确保stack不为空否则可能是未定义的行为 void stack::pop()
移除stack的栈顶元素,调用者必须确保stack不为空否则可能是未定义的行为 bool comparison(const stack& st1, const stack& st2)
返回两个同型的stack的比较结果comparison可以是下面各个运算之一:operator ==,operator !=,operator <,operator >,operator <=,operator >=
STL中stack小结的更多相关文章
- STL中stack/queue/map以及Boost unordered_map 的使用方法
一.stackstack 模板类的定义在<stack>头文件中.stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要的,在不指定容器类型时,默认的容器类型 ...
- STL中priority_queue小结
(1)为了运用priority_queue,你必须包含头文件<queue>:#include<queue> (2)在头文件中priority_queue定义如下: namesp ...
- STL 中priority_queue小结
(1)为了运用priority_queue,你必须包含头文件<queue>:#include<queue> (2)在头文件中priority_queue定义如下: nam ...
- STL中vector小结
()使用vector之前必须包含头文件<vector>:#include<vector> ()namespace std{ template <class T, clas ...
- STL中的stack(堆栈)
转载:http://blog.csdn.net/morewindows/article/details/6950881 栈(statck)这种数据结构在计算机中是相当出名的.栈中的数据是先进后出的(F ...
- stl的stack在开发中的应用
栈有后进先出特点,我们可以用它来暂时保存数据,在画板开发中,我用到了栈来保存用户的每一步操作,当用户点击撤销时可以把图像从栈里面取出,然后恢复.浏览器的前进和后退也是这个原理,只是它保存的是网页罢了. ...
- STL中的set容器的一点总结
1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构 ...
- 深入了解STL中set与hash_set,hash表基础
一,set和hash_set简介 在STL中,set是以红黑树(RB-Tree)作为底层数据结构的,hash_set是以哈希表(Hash table)作为底层数据结构的.set可以在时间复杂度为O(l ...
- 【转】 STL中的set容器的一点总结
1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构 ...
随机推荐
- MongoDB图形化管理工具
NoSQL的运动不止,MongoDB 作为其中的主力军发展迅猛,也带起了一股开发图形化工具的风潮:气死反过来说,看一个产品是否得到认可,可以侧面看其第三方工具的数量和成熟程度:简单的收集了MongoD ...
- iOS crash 异常捕获
// // UncaughtExceptionHandler.m // UncaughtExceptions // // Created by Matt Gallagher on 2010/05 ...
- 【Android开发坑系列】之Fragment
这个东西有顾名思义是碎片,和之前的Activity对应. 坑1:一般情况都会想当然的以为进程被杀掉之后,Fragment也会被回收 其实,Fragment有自己的生命周期,有自己的管理器(Fragme ...
- Spark RDD解密
1. 基于数据集的处理: 从物理存储上加载数据,然后操作数据,然后写入数据到物理设备; 基于数据集的操作不适应的场景: 不适合于大量的迭代: 不适合交互式查询:每次查询都需要对磁盘进行交互. 基于数 ...
- vim 多行注释消除注释,多行删除
进入可视化模式: Ctrl+v 继续进入编辑模式: shift+i 注释: shift+# 注释生效: ESC 取消注释 d 删除 选中全部字符块区域,使用方向键上下右: 然后,按一下d
- sqlserver 生成UUID随机码
)) ) AS BEGIN ); ,),),),),) RETURN @id END --使用如下 select dbo.[FunGetUUID32](NEWID());
- JAVA常见错误处理方法 和 JVM内存结构
OutOfMemoryError在开发过程中是司空见惯的,遇到这个错误,新手程序员都知道从两个方面入手来解决:一是排查程序是否有BUG导致内存泄漏:二是调整JVM启动参数增大内存.OutOfMemor ...
- BSTestRunner——一个丑在路上的python unnitest HTML报告生成Runner
今天忽然看到HTMLTestRunner的样式,第一眼的感觉是样式有点过时了,稍微看了下源码,果然最后更新时间是几年前,由于实现比较简单,所以顺手将样式改一下. 效果图 设计思想 既然有UI,那么如果 ...
- Windows调试学习笔记:(二)WinDBG调试.NET程序示例
好不容易把环境打好了,一定要试试牛刀.我创建了一个极其简单的程序(如下).让我们期待会有好的结果吧,阿门! using System; using System.Collections.Generic ...
- ./adb: cannot execute binary file:
问题描述: 在32位ubuntu(12.04)上下载了最新的android SDK,使用SDK manager 下载ADB之后发现,无法运行ADB命令,排除权限问题,在网上搜到答案: http://a ...