stl之stack容器

为了严格遵循堆栈数据后进先出原则,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

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

时间: 2024-10-10 06:57:51

stl之stack容器的相关文章

STL之stack容器和queue容器

摘要:本文主要介绍了两种容器——stack容器和queue容器. 1.基本概念   stack容器 queue容器 容器介绍 stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口, 形式如图所示.stack容器允许新增元素,移除元素,取得栈顶元素,但是除了 最顶端外,没有任何其他方法可以存取stack的其他元素.换言之,stack不允 许有遍历行为. 有元素推入栈的操作称为:push,将元素推出stack的操作称为pop. Queue是一种先进先出(

浅谈C++ STL stack 容器

浅谈C++ STL stack 容器 本篇随笔简单介绍一下\(C++STL\)中\(stack\)容器的使用方法和常见的使用技巧. stack容器的概念 \(stack\)在英文中是栈的意思.栈是一种基本的数据结构.而\(C++STL\)中的栈就是把这种数据结构模板化了. 栈的示意图如下:这是一个先进后出的数据结构.这非常重要!! 事实上,\(stack\)容器并不是一种标准的数据结构,它其实是一个容器适配器,里面还可以存其他的\(STL\)容器.但那种使用方法过于高深而且不是很常用,所以在此不

STL学习系列四:Stack容器

Stack简介 stack是堆栈容器,是一种“先进后出”的容器. stack是简单地装饰deque容器而成为另外的一种容器. #include <stack> 1.stack对象的默认构造 stack采用模板类实现, stack对象的默认构造形式: stack <T> stkT; stack <int> stkInt;            //一个存放int的stack容器. stack <float> stkFloat;     //一个存放float的

STL之stack适配器的实现框架

说明:本文仅供学习交流,转载请标明出处,欢迎转载! 一提到适配器(adapter),我们就想到了早期用电话线上网所用的调制解调器,俗称"猫","猫"的作用是实现数模转化和模数转化,在客户端,它可以将电话的模拟信息转化为我们计算机能够接收的数字信息,所以猫相当于一个转换器.再举个更加好理解的例子来说明"适配器"的含义.相信在我们每个人的家里都有插排,假设就这么一种情况,现在我们家里的墙壁上只有一个三角的插口,而我们的电视却是两个口,怎么办?毫无疑问

C++ STL学习——stack

栈是最为常用的数据结构了,很多算法都是依靠栈来实现的,比如递归.我们要手动来实现栈,显得十分繁琐和麻烦,而且复用性不好.C++ 的STL中已经帮我们封装好了栈,我们只要方便的进行调用即可.该篇博客主要介绍STL 中stack的使用,stack应该说是STL中最简单的容器了.实例代码上传至  https://github.com/chenyufeng1991/STL_stack . (1)首先引入头文件 #include <stack>   .并使用命名空间:using namespace st

STL中的容器

STL中的容器 一. 种类: 标准STL序列容器:vector.string.deque和list. 标准STL关联容器:set.multiset.map和multimap. 非标准序列容器slist和rope.slist是一个单向链表,rope本质上是一个重型字符串 非标准关联容器hash_set.hash_multiset.hash_map和hash_multimap. 几种标准非STL容器,包括数组.bitset.valarray.stack.queue和priority_queue 值得

STL&lt;一&gt;:主要容器简介

vector : 向量 list : 双向链表容器,提供数据结构中链表的所有功能 queue : 队列容器,提供数据结构中队列的所有功能 stack : 栈容器,提供数据结构中栈的所有功能 deque : 双端栈容器,提供数据结构中栈的所有功能 priority_queue : 优先队列,一种按值排序的队列容器 set : 集合容器 multiset : 允许出现重复元素的集合容器 map<key,value> ; 关联数组容器 multimap<key,value> : 允许出现

C++STL之关联容器【map】【set】

map以键-值対的形式组织,键的作用在于索引,而值表示所存储和读取数据. set仅包含一个键,并且有效的支持某个键是否存在的查询. 他们都是基于标准型类库pair实现,该类型在utility头文件中. 一:关于pair类型的操作 pair<T1,T2> p1; //创建一个空pair类型 pair<T1,T2> p1(v1,v2); //创建并初始化 make_pair(v1,v2) //生成pair对象 <,>,==,!=  //类型之间比较,遵循字典序,先比较fir

STL 之 stack 源码剖析

G++ 2.91.57,cygnus\cygwin-b20\include\g++\stl_stack.h 完整列表 /* * * Copyright (c) 1994 * Hewlett-Packard Company * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without fe