STL学习笔记6 -- 栈stack 、队列queue 和优先级priority_queue 三者比较
栈stack 、队列queue 和优先级priority_queue 三者比较
默认下stack 和queue 基于deque 容器实现,priority_queue 则基于vector 容器实现。
stack 先进后出
queue 先进先出
priority_queue 按优先级出队
代码示例如下:
#include "iostream"
using namespace std;
#include "string"
#include "stack"
#include "queue" int main()
{
//first in last out
stack <int> stack1;
stack1.push();
stack1.push();
stack1.push();
cout<<"pop:"<<stack1.top()<<endl;//取得栈顶元素233
stack1.pop();//移除元素
if (stack1.empty())
{
cout<<"The stack is empty!"<<endl;
}
cout<<"元素个数"<<stack1.size()<<endl;
cout<<"**************************************"<<endl;
//////////////////////////////////////////////////////////////////////////
//first in first out
queue <int> queue1;
queue1.push();
queue1.push();
queue1.push();
cout<<"font:"<<queue1.front()<<endl;//
cout<<"back:"<<queue1.back()<<endl;//
if (queue1.empty())
{
cout<<"The queue is empty!"<<endl;
}
cout<<"元素个数"<<queue1.size()<<endl;
cout<<"**************************************"<<endl;
//////////////////////////////////////////////////////////////////////////
// Priority Queues(优先队列),从大到小
priority_queue <string> queue2;
queue2.push("aaaa");
queue2.push("dddd");
queue2.push("cccc");
cout<<"top:"<<queue2.top()<<endl;//结果是dddd
if (queue2.empty())
{
cout<<"The queue is empty!"<<endl;
}
cout<<"元素个数"<<queue2.size()<<endl;
cout<<"**************************************"<<endl; getchar();
return ;
}
STL学习笔记6 -- 栈stack 、队列queue 和优先级priority_queue 三者比较的更多相关文章
- [ACM训练] 算法初级 之 数据结构 之 栈stack+队列queue (基础+进阶+POJ 1338+2442+1442)
再次面对像栈和队列这样的相当基础的数据结构的学习,应该从多个方面,多维度去学习. 首先,这两个数据结构都是比较常用的,在标准库中都有对应的结构能够直接使用,所以第一个阶段应该是先学习直接来使用,下一个 ...
- python学习笔记——multiprocessing 多进程组件-队列Queue
1 消息队列 1.1 基本语法 消息队列:multiprocessing.Queue,Queue是对进程安全的队列,可以使用Queue实现对进程之间的数据传输:还有一个重要作用是作为缓存使用. Que ...
- C++STL学习笔记_(3)stack
10.2.4stack容器 Stack简介 ² stack是堆栈容器,是一种"先进后出"的容器. ² stack是简单地装饰deque容器而成为另外的一种容器. ² #inc ...
- STL学习笔记(转,还是比较全的)
STL简介 1 概况 2 1.1 STL是什么 2 1.2 为什么我们需要学习STL 2 1.3 初识STL 2 1.4 STL 的组成 5 2 容器 6 2.1 基本容器——向量(vector) 6 ...
- muduo网络库学习笔记(三)TimerQueue定时器队列
目录 muduo网络库学习笔记(三)TimerQueue定时器队列 Linux中的时间函数 timerfd简单使用介绍 timerfd示例 muduo中对timerfd的封装 TimerQueue的结 ...
- Effective STL 学习笔记 39 ~ 41
Effective STL 学习笔记 39 ~ 41 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...
- Effective STL 学习笔记 Item 38 : Design functor classes for pass-by-value
Effective STL 学习笔记 Item 38 : Design functor classes for pass-by-value */--> div.org-src-container ...
- Effective STL 学习笔记 Item 34: 了解哪些算法希望输入有序数据
Effective STL 学习笔记 Item 34: 了解哪些算法希望输入有序数据 */--> div.org-src-container { font-size: 85%; font-fam ...
- Effective STL 学习笔记 32 ~ 33
Effective STL 学习笔记 32 ~ 33 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...
随机推荐
- zip man man.config
zip man man.config zip -r zip1 man.config man.zip gzip a tar -cvf test.tar /home/* tar -tf test.tar ...
- /usr/local/sbin/arpspoof
/usr/local/sbin/arpspoof arpspoof -t 攻击者ip地址 网关ip地址 稍等系,被攻击者机器的arp的缓存就已经变了.
- fold - 折叠输入行, 使其适合指定的宽度
总览 (SYNOPSIS) ../src/fold [OPTION]... [FILE]... 描述 (DESCRIPTION) 折叠(wrap) 每个 文件 FILE 中 的 输入行 (缺省为 标准 ...
- Portal的认证方式
不同的组网方式下,可采用的 Portal 认证方式不同.按照网络中实施 Portal 认证的 网络层次来分,Portal 的认证方式分为两种:二层认证方式和三层认证方式. 二层认证方式.这种方式支持在 ...
- c# 科学计数法值转换成正常值,返回字符串
/// <summary> /// 科学计数法值转换成正常值 /// </summary> /// <param name="value">&l ...
- oracle用户创建及权限设置(转)
权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> ...
- node第一天
一.主要执行的文件命名一般为main.js var aModule =require('./a.js');//相对路径 var aModule =require('a.js');//专门从node_m ...
- abs的个人博客 http://abs001.top/blog
abs的个人博客 abs的个人博客 abs的个人博客 abs的个人博客 abs的个人博客 abs的个人博客 abs的个人博客 abs的个人博客 abs的个人博客 abs的个人博客 abs的个人博客 a ...
- ElasticSearch High Level REST API【3】Scroll 滚屏
ES中提供了 FROM/SIZE 分页,但这种分页有性能瓶颈. Scroll会以间隔时间滚屏的方式返回全部的查询数据,可以作为数据量很大的情况下,分页的一个替代方案 完整的示例如下: public v ...
- python 使用uuid 出现重复
同时保存入数据库时候 ,使用 uuid.uuid1() 后出现 重复的 id , 现在 修改为 (uuid.uuid5(uuid.NAMESPACE_DNS, str(uuid.uuid1()) ...