在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)的更多相关文章

  1. C++标准库类模板vector

    vector是C++标准库STL中的一个重要的类模板,相当于一个更加健壮的,有很多附加能力的数组 使用vector前首先要包含头文件 #include<vector>  1.vector的 ...

  2. ZT 类模板Stack的实现 by vector

    *//*第3章 类模板 与函数相似,类也可以被一种或多种类型参数化.容器类就是一个具有这种特性的典型例子,它通常被用于管理某种特定类型的元素.只要使用类模板,你就可以实现容器类,而不需要确定容器中元素 ...

  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 ...

  4. STL学习笔记6 -- 栈stack 、队列queue 和优先级priority_queue 三者比较

    栈stack  .队列queue  和优先级priority_queue 三者比较 默认下stack 和queue 基于deque 容器实现,priority_queue 则基于vector 容器实现 ...

  5. C++标准库分析总结(五)——<Deque、Queue、Stack设计原则>

    本节主要总结标准库Deque的设计方法和特性以及相关迭代器内部特征 1.Deque基本结构 Deque(双向队列)也号称连续空间(其实是给使用者一个善意的谎言,只是为了好用),其实它使用分段拼接起来的 ...

  6. python基本数据结构栈stack和队列queue

    1,栈,后进先出,多用于反转 Python里面实现栈,就是把list包装成一个类,再添加一些方法作为栈的基本操作. 栈的实现: class Stack(object): #初始化栈为空列表 def _ ...

  7. C++栈(stack)、队列(queue)、链表(list)的常用函数

    C++队列Queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构.1.back() 返回一个引用,指向最后一个元素2.empty() 如果队列空则返回真3.front() 返回第一 ...

  8. 06.队列、python标准库中的双端队列、迷宫问题

    class QueueUnderflow(ValueError): """队列为空""" pass class SQueue: def __ ...

  9. 标准库中的-stack

    #include <sequence_concepts.h> __STL_BEGIN_NAMESPACE // Forward declarations of operators == a ...

随机推荐

  1. composer 更新

    composer self-update --preview 清除缓存 composer clearcache

  2. 【转载】Maven+druid+MyBatis+Spring+Oracle+Dubbo开发环境搭建

    原地址:http://blog.csdn.net/wp1603710463/article/details/48247817#t16 Maven+druid+MyBatis+spring+Oracle ...

  3. Typora的图片根目录设置,

    需求:使Typora的图片,设置到指定的文件里. 方便上传与转移. 步骤: 1 位置: 编辑 ->图片工具->设置图片根目录. 2 .Preference -> Editor -&g ...

  4. 编写高质量代码改善C#程序的157个建议——建议69:应使用finally避免资源泄漏

    建议69:应使用finally避免资源泄漏 除非发生让应用程序中断的异常,否则finally总是会先于return执行.finally的这个语言特性决定了资源释放的最佳位置就是在finally块中:另 ...

  5. Grunt 与WebStrom 集成

    为了不想使用命令行的方式开着grunt,打算将Grunt命令集成WebStrom 中 . 1.将配置好的Gruntfile文件放到项目的根目录下.. 2.File-setting-Extental T ...

  6. Alpha冲刺 - (8/10)

    队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Part.2 成员汇报 组员1(组长)柯奇豪 过去两天完成了哪些任务 进一步优化代码,结合自己负责的部分修改功能 代码规范完整 ...

  7. 【转】java中定义二维数组的几种写法

    原文链接 注:以下的 type[][] var 也可以这样申明 type var[][] type为数组的类型,var为变量名 写法一:行列固定的数组 //定义二维数组写法1 class Test { ...

  8. memcached整理の内存管理及删除机制

    内存的碎片化 如果用C语言直接malloc,free来向操作系统申请和释放内存时,在不断申请和释放的过程中,形成了一些很小的内存片段,无法再利用.这种空闲但无法利用内存的现象称为内存的碎片化. sla ...

  9. C#中使用Redis学习一 windows安装redis服务器端和客户端

    学习背景 今天是2015年1月2日,新年刚开始的第二天,先祝大家元旦快乐啦(迟到的祝福吧^_^).前段时间一直写Jquery插件开发系列博文,这个系列文章暂停一段时间,最近一直在看redis,我将把r ...

  10. FTP ftp部署遇到问题

    FTP  ftp部署遇到问题 一. 二.