C++ STL stack 用法

Stack(栈)是一种后进先出的数据结构,也就是LIFO(last in first out) ,最后加入栈的元素将最先被取出来,在栈的同一端进行数据的插入与取出,这一段叫做“栈顶”。

使用STL的stack,需要头文件#include<stack>

最常见,也是最简单的定义方式: stack <int> mystack; //构造一个用于存放int类型的空栈

栈的清空

 while (!s.empty()){cout << s.top() << "\n";s.pop();}

其他函数

s.push(10);入栈

s.pop();出栈

empty(); 堆栈为空则返回真

size(); 返回栈中元素数目

top(); 返回栈顶元素

代码实例

一道拆括号的练习题

#include<iostream>
#include<string>
#include<stack>
using namespace std;int main()
{int total;cin >> total;stack<char> stackStr;string str;int j;for (j = 0; j < total; j++){cin >> str;int i;while (!stackStr.empty())//清空栈{stackStr.pop();}for (i = 0; i < str.length(); i++){if (str[i] == 'G'){cout << stackStr.size() << endl;break;}else{if (stackStr.size() == 0)//栈为空{stackStr.push(str[i]);//入栈}else if (stackStr.top() == '['&&str[i] == ']')//匹配{stackStr.pop();//出栈}else{stackStr.push(str[i]);//入栈}}}}cout << endl;system("pause");
}

C++ STL栈Stack的使用相关推荐

  1. cqueue结构pop_c++ stl栈容器stack的pop(),push()等用法介绍及头文件

    C++ Stack(堆栈) 是一个容器类的改编,为程序员提供了堆栈的全部功能,--也就是说实现了一个先进后出(FILO)的数据结构. c++ stl栈stack的头文件为: #include c++ ...

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

    stack堆栈容器 堆栈是一个线性表,插入和删除只在表的一端进行.这一端称为栈顶(Stack Top),另一端则为栈底(Stack Bottom).堆栈的元素插入称为入栈,元素的删除称为出栈.由于元素 ...

  3. C++STL之stack栈容器

    C++STL之stack栈容器 1. 再谈栈 回顾一下之前所学的栈,栈是一种先进后出的数据结构,而实现方式需要创建多个结构体,通过链式的方式进行实现,这是标准的栈的思路,而在STL中栈可以以更为简单的 ...

  4. 【小白学习C++ 教程】二十二、C++ 中的STL容器stack、queue和map

    @Author:Runsen STL 中的栈容器是一种容器适配器.在栈容器中,元素在一端插入并在同一端删除. stack 为了实现堆栈容器,我们需要在我们的程序中包含头文件<stack>. ...

  5. C++STL的stack容器

    C++STL的stack容器 stack 基本概念 stack 常用接口 stack 基本概念 概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口 ...

  6. 数据结构--栈(附上STL栈)

    定义: 栈是一种只能在某一端插入和删除数据的特殊线性表.他按照先进先出的原则存储数据,先进的数据被压入栈底,最后进入的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后被压入栈的,最先弹出).因此栈 ...

  7. 备战NOI 数据结构——栈与单调栈(stack) 以及后缀表达式

    栈 stack 引入 栈的概念 代码实现 定义和初始化(init) 入栈(push) 出栈(pop) 访问栈顶元素(query) 查询栈的元素个数(size) 判断是否为空(empty) 清空栈(cl ...

  8. 一文搞懂栈(stack)、堆(heap)、单片机裸机内存管理malloc

    大家好,我是无际. 有一周没水文了,俗话说夜路走多了难免遇到鬼. 最近就被一个热心网友喷了. 说我的文章没啥营养,所以今天来一篇烧脑的. 哈哈,开个玩笑,不要脸就没人能把我绑架. 主要是最近研发第二代 ...

  9. 在java的实现栈的插入数据_Java实现数据结构栈stack和队列Queue

    回顾JDK提供的集合类 容器(集合)框架如下: 集合类存放于java.util包中.集合类存放的都是对象的引用,而非对象本身. 集合类型主要有3种:set(集).list(列表)和map(映射). C ...

最新文章

  1. 用 Python 详解《英雄联盟》游戏取胜的重要因素!
  2. 基于vue-cli配置移动端自适应
  3. 【完结】AI1000问以后知识星球和B站见啦
  4. 【Linux系统编程】线程基本操作
  5. 中石油训练赛 - Incremental Induction(贪心)
  6. 机器学习篇—大厂笔试题
  7. pycharm下的第一个函数程序
  8. 银行对公业务结构图梳理
  9. 01.ZooKeeper安装和介绍
  10. 接口测试面试题及参考答案,轻松拿捏面试官
  11. JavaScript实现视频播放器
  12. 用Python模拟同步时钟
  13. 联通loid认证_光纤LOID 认证 需要填写的用户名是什么?有人说不...
  14. 黑马程序员_计算机编码技术
  15. bit feild and CPU endian 位域和大小端
  16. java curator_关于Curator学习过程问题
  17. Mybase7延长试用期
  18. js 实现在当前页面打开新窗口
  19. 【MT7620】MT7620 WiFi驱动增加无线终端连接实时协商速率功能
  20. 转:Emacs生存指南 (Emacs入门必读)

热门文章

  1. Markdown-基础语法
  2. 脚注交叉引用序号不一样_期末干货|蛋黄君的论文不秃头指南
  3. [USACO18JAN][luoguP4183 ]Cow at Large P
  4. QT学习笔记(2)----- QT安装教程
  5. 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----UDP篇
  6. Android low memory killer 机制
  7. live555 源码分析:MediaSever
  8. 第30讲:如何爬app的数据
  9. 看透 Go 对象内部细节的神器
  10. 极端情况下收缩 Go 进程的线程数