C++中stack的使用方法

stack模板类(在头文件stack中声明)是一个适配器类,它给底层类(默认情况下为vector)提供了典型的栈接口。
stack模板的限制比vector多。它不仅不允许随机访问栈元素,甚至不允许遍历栈。它把使用限制在定义栈的基本操作上,即可以将压入推到栈顶、从栈顶弹出元素、查看栈顶的值、检查元素数目和测试栈是否为空。

1. 头文件包含

#include <stack>

2. 构造函数

1. //默认构造函数stack<int> first;//创建一个空的stack2. //复制构造函数,使用已有的stack创建新的stackstack<int, list<int> >   s1;stack<int, list<int> >   s2(s1);//利用 s1 ,创建一个以双向链表为底层容器的空堆栈对象 s2 //使用已创建的deque创建stackdeque<int> mydeque (3,100);          // 包含3个元素dequestack<int> second (mydeque);         // 使用deque初始化stack//创建vector为底层的stack,和使用已有stack初始化新的stacckstd::stack<int,std::vector<int> > third;  // 使用vector创建的空stackstd::stack<int,std::vector<int> > fourth (myvector);

3. 操作

语法:

  ==<=>=<>!=

所有的这些操作可以被用于堆栈. 相等指堆栈有相同的元素并有着相同的顺序。

4. 方法函数总览

1. empty()   堆栈为空则返回真2. pop()    移除栈顶元素3. push() 在栈顶增加元素4. size()    返回栈中元素数目5. top()    返回栈顶元素

5. 方法函数原型和简单解释

empty
语法:
bool empty();
如当前堆栈为空,empty() 函数 返回 true 否则返回false.

pop
语法:
void pop();
pop() 函数移除堆栈中最顶层元素。

push
语法:
void push( const TYPE &val );
push() 函数将 val 值压栈,使其成为栈顶的第一个元素。如:

    stack<int> s;for( int i=0; i < 10; i++ )s.push(i);

size
语法:
size_type size();
size() 函数返当前堆栈中的元素数目。如:

    stack<int> s;for( int i=0; i < 10; i++ )s.push(i);cout << "This stack has a size of " << s.size() << endl;

top
语法:
TYPE &top();
top() 函数返回对栈顶元素的引用. 举例,如下代码显现和清空一个堆栈。

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

stack的使用方法相关推荐

  1. java中Stack的peek方法

    一.用法: java里Stack的peek方法是返回栈顶的元素但不移除它. 但Stack的pop方法是会移除的. 二.原因剖析: (1)这是JDK中的peek方法的源码 /** * Looks at ...

  2. has_a php,PHP has encountered a Stack overflow问题解决方法

    昨晚将一个disucz论坛进行转移后,发现打开的页面上回多一个PHP has encountered a Stack overflow 这个提示错误,进过翻译为"PHP遇到堆栈溢出" ...

  3. java中stack heap_java虚拟机中的堆(heap)、栈(stack)、方法区(method area)

    1.堆区 存储的全部是对象,每个对象都包含一个与之对应的class的信息.(class的目的是得到操作指令) jvm只有一个heap区,被所有线程共享,不存放基本类型和对象引用,只存放对象本身 堆的优 ...

  4. Java中Stack栈的方法

    栈的特点就是先进后出, 后进先出,在Stack类中有五种方法 返回类型 方法名 描述 E push(E item) 将传入的值入栈的顶部 E pop() 返回栈顶的值,并删除栈顶的对象 E peek( ...

  5. v9更新栏目缓存提示PHP has encountered a Stack overflow解决方法

    原因: 客户在把一些栏目删除或者新增栏目时没更新栏目缓存 导致v9_category表里有原来的垃圾信息,多余的表. 解决方法: 通过phpmyadmin找到栏目表出错的条目,修改错误信息. 具体步骤 ...

  6. arthas使用示例:stack输出当前方法被调用的路径

    参数 举例

  7. 数据结构Stack:关系以及方法

    Stack简介 Stack是栈.它的特性是:先进后出(FILO, First In Last Out). java工具包中的Stack是继承于Vector(矢量队列)的,由于Vector是通过数组实现 ...

  8. Java 栈 stack方法总结

    前言 最近开始在重新刷leetcode,发现之前刷过的很多算法题现在又陆陆续续忘记了.真是应了那句话,面试造火箭,进去拧螺丝.刷了几道在贪心算法中使用stack来完成的.就重新总结下栈Stack的方法 ...

  9. Java中的OutOfMemoryError的各种情况及解决方法

    转载自博客园:https://www.cnblogs.com/duanxz/p/4901437.html Java中的OutOfMemoryError的各种情况及解决和JVM内存结构 在JVM中内存一 ...

  10. 转:JAVA常见错误处理方法 和 JVM内存结构

    OutOfMemoryError在开发过程中是司空见惯的,遇到这个错误,新手程序员都知道从两个方面入手来解决:一是排查程序是否有BUG导致内存泄漏:二是调整JVM启动参数增大内存.OutOfMemor ...

最新文章

  1. 火遍全国的网络热梗“yyds”,创造者被判刑3年
  2. Codeforces Beta Round #14 (Div. 2) B. Young Photographer 水题
  3. VTK:受约束的 Delaunay 2D用法实战
  4. scenejs的一点Cameras小笔记
  5. 【渝粤教育】电大中专药事管理与法规作业 题库
  6. Linux下XPath对xml解析
  7. LeetCode 1859. 将句子排序
  8. 循环往数组中添加对象
  9. Linux的安装及忘记Linux密码的措施
  10. setinterval 和 ajax,JavaScriptsetInterval和“this”解决方案
  11. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-1.SpringBoot整合微信支付开发在线教育视频站点介绍...
  12. CSDN积分赚取方法
  13. Windows中的SID详解
  14. 洛谷P1357 花园(状态压缩+矩阵快速幂)
  15. 深度学习在文本分类中的应用
  16. 微信环境中扫描二维码下载APP(APK)文件的解决方案-自动跳转到手机默认浏览器(AppStore)打开
  17. 模糊综合评判法实现学生互评
  18. Android 轻量级数据库 Hawk
  19. Linux系统学习笔记二
  20. 科技云报道原创:没有一个行业,能拒绝“通信中台”的诱惑

热门文章

  1. 礼物帮手项目(3) - 传id跳转详情页(尝试2种方法)
  2. 基于STM32+华为云IOT设计的云平台监控系统
  3. Linaro ABE(高级构建环境)构建GNU交叉工具链
  4. 汽车行业DMS系统介绍
  5. c语言编译器w7,wintc下载|c语言编译器wintc win7/win8兼容版 v2.0下载 64位32位 - 3322软件站...
  6. 加密保护软件 WinLicense常见问题整理大全(六)
  7. matlab persistent,新见到的MATLAB变量类型 persistent
  8. python使用mechanize模拟登陆新浪邮箱
  9. 1.计算机网络的发展,计算机网络的发展史「简述」
  10. oracle数据的闪回——删库跑路?老铁别想了!