C++标准库类模板(stack)和 队列(queue)
在C++标准库(STL)中有栈和队列的类模板,因此可以直接使用
1、栈(stack):使用栈之前,要先包含头文件 : #include<stack>
stack.push(elem); //往栈头添加元素
stack.pop(); //从栈头移除第一个元素
stack.top(); //返回栈顶元素
stack.empty(); //判断堆栈是否为空,栈空返回true,栈非空返回false
stack.size(); //返回堆栈的大小
例:
#include <iostream>
#include <stack>
using namespace std;
int main(){
stack<int> stack;
int num;
cout<<"入栈:";
for(int i = 1;i<10;i++){
cout<<i<<" ";
stack.push(i);
}
stack.empty()?cout<<endl<<"当前栈空":cout<<endl<<"当前栈非空";
cout<<endl<<"栈内元素数:"<<stack.size()<<endl;
cout<<"出栈:";
while(!stack.empty())
{
cout<<stack.top()<<" ";
stack.pop();
}
stack.empty()?cout<<endl<<"当前栈空":cout<<endl<<"当前栈非空";
return 0;
}
2、队列(queue):使用队列,要先包含头文件 : #include<queue>
queue.push(elem) //把元素压入队列尾部
queue.pop() //删除队首元素,但不返回
queue.front() //返回队首元素,但不删除
queue.back() //返回队尾元素,但不删除
queue.size() //返回队列中元素的个数
queue.empty() //检查队列是否为空,如果为空返回true,否则返回false
例:
#include <iostream>
#include <queue>
using namespace std;
int main(){
queue<int> queue;
int num;
cout<<"入队:";
for(int i = 1;i<10;i++){
queue.push(i);
cout<<queue.back()<<" ";
}
queue.empty()?cout<<endl<<"当前队列空":cout<<endl<<"当前队列非空";
cout<<endl<<"队列内元素数:"<<queue.size()<<endl;
cout<<"出队:";
while(!queue.empty())
{
cout<<queue.front()<<" ";
queue.pop();
}
queue.empty()?cout<<endl<<"当前队列空":cout<<endl<<"当前队列非空";
return 0;
}
C++标准库类模板(stack)和 队列(queue)的更多相关文章
- C++标准库类模板vector
vector是C++标准库STL中的一个重要的类模板,相当于一个更加健壮的,有很多附加能力的数组 使用vector前首先要包含头文件 #include<vector> 1.vector的 ...
- ZT 类模板Stack的实现 by vector
*//*第3章 类模板 与函数相似,类也可以被一种或多种类型参数化.容器类就是一个具有这种特性的典型例子,它通常被用于管理某种特定类型的元素.只要使用类模板,你就可以实现容器类,而不需要确定容器中元素 ...
- C++ Templates (2.1 类模板Stack的实现 Implementation of Class Template Stack)
返回完整目录 目录 2.1 类模板Stack的实现 Implementation of Class Template Stack 2.1.1 声明类模板 Declaration of Class Te ...
- STL学习笔记6 -- 栈stack 、队列queue 和优先级priority_queue 三者比较
栈stack .队列queue 和优先级priority_queue 三者比较 默认下stack 和queue 基于deque 容器实现,priority_queue 则基于vector 容器实现 ...
- C++标准库分析总结(五)——<Deque、Queue、Stack设计原则>
本节主要总结标准库Deque的设计方法和特性以及相关迭代器内部特征 1.Deque基本结构 Deque(双向队列)也号称连续空间(其实是给使用者一个善意的谎言,只是为了好用),其实它使用分段拼接起来的 ...
- python基本数据结构栈stack和队列queue
1,栈,后进先出,多用于反转 Python里面实现栈,就是把list包装成一个类,再添加一些方法作为栈的基本操作. 栈的实现: class Stack(object): #初始化栈为空列表 def _ ...
- C++栈(stack)、队列(queue)、链表(list)的常用函数
C++队列Queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构.1.back() 返回一个引用,指向最后一个元素2.empty() 如果队列空则返回真3.front() 返回第一 ...
- 06.队列、python标准库中的双端队列、迷宫问题
class QueueUnderflow(ValueError): """队列为空""" pass class SQueue: def __ ...
- 标准库中的-stack
#include <sequence_concepts.h> __STL_BEGIN_NAMESPACE // Forward declarations of operators == a ...
随机推荐
- 1146 ID Codes
题目链接: http://poj.org/problem?id=1146 题意: 给定一个字符串(长度不超过50), 求这个字符串的下一个字典序的字符串, 如果已经是最大字典序, 那么输出 " ...
- java.lang.ClassCastException: com.liuyang.annocation.UserAction cannot be cast to com.liuyang.annocation2.UserAction at com.liuyang.annocation2.App.test
java.lang.ClassCastException: com.liuyang.annocation.UserAction cannot be cast to com.liuyang.annoca ...
- [LintCode笔记了解一下]44.Minimum Subarray
这道题和max subarray很类似,我用local 和 global 的dp方式阔以解决这道 那么我们来看动态规划的四个要素分别是什么? State: localmin[i] 表示以当前第i个数最 ...
- SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)(Finchley版本)
上一篇文章讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用,架构图如 ...
- XJOI3602 邓哲也的矩阵(优先队列优化DP)
题目描述: 有一个 n×m的矩阵,现在准备对矩阵进行k次操作,每次操作可以二选一 1: 选择一行,给这一行的每一个数减去p,这种操作会得到的快乐值等于操作之前这一行的和 2: 选择一列,给这一列的每一 ...
- Acrobat_8_Pro_SC 激活老是提示你输入的授权码无效
假如安装了Adobe Acrobat Professional 8 的时候无法激活, 或在恢复安装时 Adobe Acrobat Professional 8 需要重新激活, 激活的时候,总是提示你输 ...
- PMBOK项目管理PMI主义\IPMA概述
PMP(Project Management Professional)指项目管理专业人士资格认证,是美国项目管理协会(Project Management Institute,PMI)在全球180多 ...
- vmware获取主机、数据中心等对象ManagedObjectReference
在vmware的api中提供以下列表中的对象,称作ManagedObjectReference,包括虚拟机信息.主机.数据中心等等一些信息,我们可以通过vcenter的web api得到. 下面我们来 ...
- Wait--查看等待
--清除等待统计 --===================================================== --清除等待统计 DBCC SQLPERF (N'sys.dm_os_ ...
- 疑难杂症--已停止运行DBCC造成阻塞
场景数据库因非法断电导致出现分配页上不一致,运行完DBCC CHECKDB后出现以下错误: 表错误: 表 't_pc_id' (ID 277576027).数据行在索引 'last_login_dat ...