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封装了许多复杂的数据结构算法和大量常用数据结构 ...
随机推荐
- python类的特性
#encoding=utf-8 class Province: #静态字段 memo = '这里是静态变量' def __init__(self,name,capital,leader,flag): ...
- nginx内置全局变量及含义
名称 版本 说明(变量列表来源于文件 ngx_http_variables ) $args 1.0.8 请求中的参数; $binary_remo ...
- Determining if a point lies on the interior of a polygon
Determining if a point lies on the interior of a polygon Written by Paul Bourke November 1987 Solut ...
- 将自己写的windows服务加入到windows集群中
最近发现windows集群能进行很多自定义,比如在集群中加入自己编写的服务. 能自定义的可不少,截个图: 本次演示中,只想用“通用服务”这个类型. 先列下步骤 编写一个记录时间的Windows服务,这 ...
- Linux2.6 内核的 Initrd 机制解析(转)
from: https://www.ibm.com/developerworks/cn/linux/l-k26initrd/ 简介: Linux 的 initrd 技术是一个非常普遍使用的机制,lin ...
- Android的Activity屏幕切换动画(一)-左右滑动切换
(国内知名Android开发论坛eoe开发者社区推荐:http://www.eoeandroid.com/) Android的Activity屏幕切换动画(一)-左右滑动切换 在Android开发过程 ...
- Nginx负载均衡 后端服务器怎么共享Session 问题
Nginx负载均衡 Nginx负载均衡一些基础知识: nginx 的 upstream目前支持 4 种方式的分配 1).轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端 ...
- Javascript生成全局唯一标识符(GUID,UUID)的方法
方法一 function guid() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { v ...
- mac OSX 上 brew install hive
本文介绍brew install hive并修改默认的metastore存储方案,改Derby数据库为mysql的方法以及可能遇到的问题的解决方案. 1. 通过homebrew安装hive 1 bre ...
- C#使用Dotfuscator混淆代码以及加密
http://www.cnblogs.com/tianguook/archive/2012/10/06/2713105.html C#编写的代码如果不进行一定程度的混淆和加密,那么是非常容易被反编译进 ...