C++标准模板库(STL)之Stack
1、Stack的常用用法
stack:栈,一个后进先出的容器。
1.1、stack的定义
加上头文件#include<stack>和using namespace std;
stack<typename> sk;
1.2、stack容器元素的访问
stack是一种操作受限制的线性表,只能通过top()来访问栈顶元素。
#include<stdio.h>
#include<stack> using namespace std;
int main()
{
stack<int> sk;
for(int i=;i<=;i++)
{
sk.push(i);//push(i)用来把i压入栈,入栈顺序1,2,3,4,5
}
printf("%d\n",sk.top());
return ;
}
1.3、stack常用函数
1.3.1、push()
push(x):将x入栈,时间复杂度为O(1)
1.3.2、top()
top():获取栈顶元素,时间复杂度为O(1)
1.3.3、pop()
pop():出栈顶元素。
1.3.4、empty()
empty():判断栈是否为空
1.3.5、size()
size():获得栈元素个数
#include<stdio.h>
#include<stack> using namespace std;
int main()
{
stack<int> sk;
if(sk.empty()==true)printf("Empty\n");//判断栈空
for(int i=;i<=;i++)
{
sk.push(i);//push(i)用来把i压入栈,入栈顺序1,2,3,4,5
}
printf("%d %d\n",sk.top(),sk.size());//5 5
return ;
}
1.4、stack的用途
用来模拟实现递归。程序的栈内存空间很小,如果用普通递归,可能会导致程序运行崩溃。
用栈模拟递归可以避免这种问题。
2018-09-25 20:25:28
@author:Foreordination
C++标准模板库(STL)之Stack的更多相关文章
- 标准模板库(STL)学习探究之stack
标准模板库(STL)学习探究之stack queue priority_queue list map/multimap dequeue string
- C++ 标准模板库(STL)
C++ 标准模板库(STL)C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), ...
- STL学习系列之一——标准模板库STL介绍
库是一系列程序组件的集合,他们可以在不同的程序中重复使用.C++语言按照传统的习惯,提供了由各种各样的函数组成的库,用于完成诸如输入/输出.数学计算等功能. 1. STL介绍 标准模板库STL是当今每 ...
- 标准模板库--STL
标准模板库STL 1.泛型程序设计 C++ 语言的核心优势之一就是便于软件的重用 C++中有两个方面体现重用: 1.面向对象的思想:继承和多态,标准类库 2.泛型程序设计(generic progra ...
- C++ 标准模板库STL 队列 queue 使用方法与应用介绍
C++ 标准模板库STL 队列 queue 使用方法与应用介绍 queue queue模板类的定义在<queue>头文件中. 与stack模板类很相似,queue模板类也需要两个模板参数, ...
- 标准模板库(STL)学习探究之vector容器
标准模板库(STL)学习探究之vector容器 C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被 ...
- C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用
摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解.即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第一篇,主要针对线性表中的顺序表(动 ...
- 实验8 标准模板库STL
一.实验目的与要求: 了解标准模板库STL中的容器.迭代器.函数对象和算法等基本概念. 掌握STL,并能应用STL解决实际问题. 二.实验过程: 完成实验8标准模板库STL中练习题,见:http:// ...
- C++的标准模板库STL中实现的数据结构之链表std::list的分析与使用
摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解,即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第二篇.主要针对线性表中的链表 ST ...
- C++ 标准模板库(STL)-stack
主要介绍一下C++11版本中标准模板库中栈的用法,希望可以帮到需要用的人. #include <iostream> #include <stack> #include < ...
随机推荐
- Unity用Vuforia做AR实现脱卡效果
这篇不错,记录下,博主不让转载 http://blog.csdn.net/qwe161819/article/details/76107105
- django2.2/mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3
报错环境 python=3.6.5,django=2.2,PyMySQL=0.9.3 …… django.core.exceptions.ImproperlyConfigured: mysqlcl ...
- [20180603]Python读写csv
原文:https://docs.python.org/3/library/csv.html 进入python官网后,选择document,然后选择library reference. 读取: impo ...
- Oarcle之单行函数(上)
dual 是一个虚表,为了满足sql句式而设置这么一个表 单行函数 字符函数 concat 拼接两个字符串 select concat (concat(ename,‘的职位是’),job) fro ...
- parse
import Parse from 'parse'; import { AsyncStorage } from 'react-native'; // 创建新的子类 var GameScore = Pa ...
- sql*loader以及oracle外部表加载Date类型列
Oracle sqlldr LOAD DATAINFILE *INTO TABLE testFIELDS TERMINATED BY X'9'TRAILING NULLCOLS( c2 &quo ...
- SCOI 2019 划水记
(此处不应有目录,爆零的过程得慢慢看) 鸽子来更新游记了 orz UESTC. Day -1 两场傻逼信心考试都没AK. 第一场真的气,一个边界觉得是i - 1,然后不知道为啥改成了i,挂了6个点,然 ...
- The dependency `XXX` is not used in any concrete target.
1.在新建项目,引入CocoaPod时,当创建了podfile文件后,执行pod install时报一下错误 2.这是因为 这个第三方不知道用于哪个target,所以必须指定target 解决方案 ...
- Magento 2.2.5和2.2.6的bug 产品设置special price又删除后价格排序有误
Magento 2.2.5和2.2.6的bug 产品设置special price又删除后价格排序有误 一.问题描述:版本2.2.5和2.2.6均有此问题,为Magento2的系统bug.为产品设置s ...
- Logstash使用介绍
Logstash介绍 Logstash是一个数据收集处理转发系统,是 Java开源项目. 它只做三件事: 数据输入 数据加工(不是必须的):如过滤,改写等 数据输出 下载安装 logstash是基 ...