stack的使用方法
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的使用方法相关推荐
- java中Stack的peek方法
一.用法: java里Stack的peek方法是返回栈顶的元素但不移除它. 但Stack的pop方法是会移除的. 二.原因剖析: (1)这是JDK中的peek方法的源码 /** * Looks at ...
- has_a php,PHP has encountered a Stack overflow问题解决方法
昨晚将一个disucz论坛进行转移后,发现打开的页面上回多一个PHP has encountered a Stack overflow 这个提示错误,进过翻译为"PHP遇到堆栈溢出" ...
- java中stack heap_java虚拟机中的堆(heap)、栈(stack)、方法区(method area)
1.堆区 存储的全部是对象,每个对象都包含一个与之对应的class的信息.(class的目的是得到操作指令) jvm只有一个heap区,被所有线程共享,不存放基本类型和对象引用,只存放对象本身 堆的优 ...
- Java中Stack栈的方法
栈的特点就是先进后出, 后进先出,在Stack类中有五种方法 返回类型 方法名 描述 E push(E item) 将传入的值入栈的顶部 E pop() 返回栈顶的值,并删除栈顶的对象 E peek( ...
- v9更新栏目缓存提示PHP has encountered a Stack overflow解决方法
原因: 客户在把一些栏目删除或者新增栏目时没更新栏目缓存 导致v9_category表里有原来的垃圾信息,多余的表. 解决方法: 通过phpmyadmin找到栏目表出错的条目,修改错误信息. 具体步骤 ...
- arthas使用示例:stack输出当前方法被调用的路径
参数 举例
- 数据结构Stack:关系以及方法
Stack简介 Stack是栈.它的特性是:先进后出(FILO, First In Last Out). java工具包中的Stack是继承于Vector(矢量队列)的,由于Vector是通过数组实现 ...
- Java 栈 stack方法总结
前言 最近开始在重新刷leetcode,发现之前刷过的很多算法题现在又陆陆续续忘记了.真是应了那句话,面试造火箭,进去拧螺丝.刷了几道在贪心算法中使用stack来完成的.就重新总结下栈Stack的方法 ...
- Java中的OutOfMemoryError的各种情况及解决方法
转载自博客园:https://www.cnblogs.com/duanxz/p/4901437.html Java中的OutOfMemoryError的各种情况及解决和JVM内存结构 在JVM中内存一 ...
- 转:JAVA常见错误处理方法 和 JVM内存结构
OutOfMemoryError在开发过程中是司空见惯的,遇到这个错误,新手程序员都知道从两个方面入手来解决:一是排查程序是否有BUG导致内存泄漏:二是调整JVM启动参数增大内存.OutOfMemor ...
最新文章
- 火遍全国的网络热梗“yyds”,创造者被判刑3年
- Codeforces Beta Round #14 (Div. 2) B. Young Photographer 水题
- VTK:受约束的 Delaunay 2D用法实战
- scenejs的一点Cameras小笔记
- 【渝粤教育】电大中专药事管理与法规作业 题库
- Linux下XPath对xml解析
- LeetCode 1859. 将句子排序
- 循环往数组中添加对象
- Linux的安装及忘记Linux密码的措施
- setinterval 和 ajax,JavaScriptsetInterval和“this”解决方案
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-1.SpringBoot整合微信支付开发在线教育视频站点介绍...
- CSDN积分赚取方法
- Windows中的SID详解
- 洛谷P1357 花园(状态压缩+矩阵快速幂)
- 深度学习在文本分类中的应用
- 微信环境中扫描二维码下载APP(APK)文件的解决方案-自动跳转到手机默认浏览器(AppStore)打开
- 模糊综合评判法实现学生互评
- Android 轻量级数据库 Hawk
- Linux系统学习笔记二
- 科技云报道原创:没有一个行业,能拒绝“通信中台”的诱惑
热门文章
- 礼物帮手项目(3) - 传id跳转详情页(尝试2种方法)
- 基于STM32+华为云IOT设计的云平台监控系统
- Linaro ABE(高级构建环境)构建GNU交叉工具链
- 汽车行业DMS系统介绍
- c语言编译器w7,wintc下载|c语言编译器wintc win7/win8兼容版 v2.0下载 64位32位 - 3322软件站...
- 加密保护软件 WinLicense常见问题整理大全(六)
- matlab persistent,新见到的MATLAB变量类型 persistent
- python使用mechanize模拟登陆新浪邮箱
- 1.计算机网络的发展,计算机网络的发展史「简述」
- oracle数据的闪回——删库跑路?老铁别想了!