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; ...
随机推荐
- instanceof 关键字
boolean = Object(类引用名) instanceof Class(类名) 作用:判断符号左边的引用指向的对象是否是右边这个类的对象:
- cms-框架搭建
1.web.xml中的配置,在配置中主要有: 1.1.过滤器: 1.1.1:shiro权限过滤器 1.1.2:字符编码过滤器 1.2.监听器: 1.2.1:spring监听器 1.3.servlet ...
- HDU 4745 Two Rabbits (区间DP)
题意: 两只兔子,在一个由n块石头围成的环上跳跃,每块石头有一个权值ai.开始时两兔站在同一石头上(也算跳1次),一只从左往右跳,一只从右往左跳,两只同时跳,而每跳一次,两只兔子所站的石头的权值都要相 ...
- COGS 1191. [Tyvj Feb11] 猫咪的进化
★ 输入文件:neko.in 输出文件:neko.out 简单对比时间限制:1 s 内存限制:128 MB [背景] 对于一只猫咪来说,它是有九条命的.但是并不是所有的猫咪都是这样,只 ...
- CSS布局--垂直水平居中
···设置两个盒子 <div class="parent"> <div class="child"> </div></ ...
- CUDA:Supercomputing for the Masses (用于大量数据的超级计算)-第三节
原文链接 第三节:错误处理和全局内存性能局限 恭喜!通过对CUDA(Compute Unified DeviceArchitecture,即计算统一设备架构的首字母缩写)系列文章第一节和第二节,您现在 ...
- Bootstrap 按钮(Button)插件加载状态
通过按钮(Button)插件,您可以添加进一些交互.比如控制按钮的状态.或者为其它组件(工具栏)创建按钮组. 加载状态 如需向按钮添加加载状态,只需要简单地向 button 元素添加 data-loa ...
- Java 性能优化的五大技巧
要对你的 Java 代码进行优化,需要理解 Java 不同要素之间的相互作用,以及它是如何与其运行时的操作系统进行交互的.使用下面这五个技巧和资源,开始学习如何分析和优化你的代码吧. 在我们开始之前, ...
- java算法面试题:有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数 按值的降序排序,如果值相同则按键值的字母顺序
package com.swift; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; publi ...
- ASP.NET Core模块化前后端分离快速开发框架介绍之2、快速创建一个业务模块
源码地址 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:https://nm.iamoldli.com 账户:admin 密码:admin ...