stl之stack容器

原创 2015年07月11日 10:39:44

为了严格遵循堆栈数据后进先出原则,stack不提供元素的任何迭代操作,因此stack容器不会向外部提供可用的前向或反向迭代器类型。
头文件#include<stack>


创建stack对象

  1. stack()
    默认的构造函数,创建一个空的stack对象。
    stack<int> s; //使用默认的deque为底层容器,创建一个空的堆栈对象s。
  2. stack(const stack&)
    复制构造函数,用一个stack堆栈创建一个新的堆栈。

元素入栈

stack堆栈容器的元素入栈函数为push函数。c++ STL的堆栈是部预设大小的,从而函数没有标明入栈成功与否的返回值。
void push(const value_type& x)


元素出栈

stack容器的出栈函数为pop函数。由于函数并没有判断堆栈是否非空,才进行元素的弹出,要自行判断堆栈是否非空,才可执行pop函数。
void pop()
该函数并不返回出栈的栈顶元素,一般需先将栈顶元素取出,才执行处栈操作。

while(!s.empty())
{
    s.pop(); //出栈
 }

取栈顶元素

stack容器的栈顶元素的读取函数为top函数,将取出最后入栈的元素。
value_type& top()
此函数也要先判断堆栈是否为空,取出栈顶元素才有意义。


堆栈的大小及是否为空的判断

  1. size_type size()
    返回当前堆栈的元素个数
  2. bool empty()
    判断堆栈是否为空,为空返回true,反之返回false

转载请注明出处:http://blog.csdn.net/lsh_2013/article/details/46839993

版权声明:本文为博主原创文章,未经博主允许不得转载。

STL常用容器总结——stack栈

原文 栈中的数据是先进后出(FILO),栈只有一个出口,添加和移除元素都只能在栈顶操作。在STL中,栈是以别的容器作为底部结构,修改接口使其符合栈的特性。默认情况下,栈使用deque作为其底层数据结构...
  • sinat_30071459
  • sinat_30071459
  • 2016年04月14日 09:13
  • 1625

c++ stl栈容器stack用法介绍

stack堆栈容器 堆栈是一个线性表,插入和删除只在表的一端进行。这一端称为栈顶(Stack Top),另一端则为栈底(Stack Bottom)。堆栈的元素插入称为入栈,元素的删除称为出栈...
  • lyj2014211626
  • lyj2014211626
  • 2017年03月27日 08:49
  • 1779

C++ STL 几个容器的底层实现 收藏一下

STL底层数据结构实现 C++ STL 的实现: 1.vector      底层数据结构为数组 ,支持快速随机访问 2.list            底层数据结构为双向链表,...
  • single_wolf_wolf
  • single_wolf_wolf
  • 2016年10月18日 22:46
  • 3267

STL容器底层数据结构

STL底层数据结构 1.vector 底层数据结构为数组 ,支持快速随机访问 2.list 底层数据结构为双向链表,支持快速增删 3.deque 底层数据结构为一个中央控制器和...
  • yujin753
  • yujin753
  • 2015年01月27日 21:32
  • 1562

STL 顺序容器,关联容器

向量 vector :   是一个线性顺序结构。相当于数组,但其大小可以不预先指定,并且自动扩展。它可以像数组一样被操作,由于它的特性我们完全可以将vector 看作动态数组。 在创建一个ve...
  • gavin0123
  • gavin0123
  • 2014年08月18日 15:12
  • 1136

c++ stl栈容器stack的pop(),push()等用法介绍及头文件

c++ stl栈stack介绍 C++ Stack(堆栈) 是一个容器类的改编,为程序员提供了堆栈的全部功能,——也就是说实现了一个先进后出(FILO)的数据结构。 c++ stl栈stack的头文...
  • l494926429
  • l494926429
  • 2016年07月29日 17:22
  • 9423

多年来,STL容器的使用总结!

第1条:慎重选择容器类型。 标准STL序列容器:vector、string、deque和list。 标准STL关联容器:set、multiset、map和multimap。 非标准序...
  • shaderdx
  • shaderdx
  • 2017年02月20日 16:31
  • 490

STL中各种容器的简单特点

(1) vector 内部数据结构:数组。 随机访问每个元素,所需要的时间为常量。 在末尾增加或删除元素所需时间与元素数目无关,在中间或开头增加或删除元素所需时间随元素数目呈线性变化。 可动态...
  • cc946079647
  • cc946079647
  • 2014年07月17日 13:32
  • 1105

STL之七:STL各种容器的使用时机详解

C++标准程序库提供了各具特长的不同容器。现在的问题是:该如何选择最佳的容器类别?下表给出了概述。 但是其中有些描述可能不一定实际。例如:如果你需呀处理的元素数量很少,可以虎落复杂度,因为线...
  • longshengguoji
  • longshengguoji
  • 2013年01月28日 20:59
  • 3082

STL容器的适用情况和缺点

一.各种容器的特性 vector 典型的序列容器,C++标准严格要求次容器的实现内存必须是连续的,唯一可以和标准C兼容的stl容器,任意元素的读取、修改具有常数时间...
  • qq_14898543
  • qq_14898543
  • 2016年05月12日 09:56
  • 526
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:stl之stack容器
举报原因:
原因补充:

(最多只允许输入30个字)