• queue的定义
queue<typename> name; 
  • queue容器内元素的访问

  由于队列本身就是一种先进先出的限制性数据结构,因此在STL中只能通过front()来访问队首元素,或是通过back()来访问队尾元素。

示例:

 1 #include <iostream>
2 #include <queue>
3 using namespace std;
4 queue<int> q;
5 int main()
6 {
7 for(int i=0;i<5;i++){
8 q.push(i+1); //push将i+1压入队列
9 }
10 cout<<q.front()<<" "<<q.back();
11 return 0;
12 }
输出结果:
1 5
  • queue常用函数

  (1)push()

  push(x)将x进入队列,时间复杂度为O(1)。

  (2)front()、back()

  front()和back()可以分别获得队首元素和队尾元素,时间复杂度为O(1)。

  (3)pop()

  pop()令队首元素出队,时间复杂度为O(1)。

示例:

 1 #include <iostream>
2 #include <queue>
3 using namespace std;
4 queue<int> q;
5 int main()
6 {
7 for(int i=0;i<5;i++){
8 q.push(i+1); //push将i+1压入队列
9 }
10 for(int i=0;i<2;i++){
11 q.pop(); //出队2次(1,2出队)
12 }
13 cout<<q.front();
14 return 0;
15 }
输出结果:
3

  (4)empty()

  empty()检测queue是否为空,返回true为空,返回false为非空。时间复杂度为O(1)。

示例:

 1 #include <iostream>
2 #include <queue>
3 using namespace std;
4 queue<int> q;
5 int main()
6 {
7 if(q.empty()==true){ //初始时,队列为空
8 cout<<"empty"<<endl;
9 }
10 else{
11 cout<<"not empty"<<endl;
12 }
13 q.push(1); //在入队1后,队列非空
14 if(q.empty()==true){
15 cout<<"empty"<<endl;
16 }
17 else{
18 cout<<"not empty"<<endl;
19 }
20 return 0;
21 }
输出结果:
empty
not empty

  (5)size()

  size()返回queue内元素的个数,时间复杂度为O(1)。

示例:

 1 #include <iostream>
2 #include <queue>
3 using namespace std;
4 queue<int> q;
5 int main()
6 {
7 for(int i=0;i<5;i++){
8 q.push(i+1); //push将i+1压入队列
9 }
10 cout<<q.size();
11 return 0;
12 }
输出结果:
5

C++标准模板库(STL)——queue常见用法详解的更多相关文章

  1. C++标准模板库(STL)——set常见用法详解

    set的定义 set<typename> name; typename可以是任何基本类型,如int.double.char.结构体等,也可以是STL标准容器,如vector.set.que ...

  2. C++标准模板库(STL)——vector常见用法详解

    vector的定义 vector<typename> name; 相当于定义了一个一维数组name[SIZE],只不过其长度可以根据需要进行变化,比较节省空间,通俗来讲,vector就是& ...

  3. C++标准模板库(STL)——map常见用法详解

    map的定义 map<typename1, typename2> mp; map需要确定映射前类型和映射后类型,所以需要在<>内填写两个类型,第一个是键的类型,第二个是值的类型 ...

  4. STL queue 常见用法详解

    <算法笔记>学习笔记 queue 常见用法详解 queue翻译为队列,在STL中主要则是实现了一个先进先出的容器. 1. queue 的定义 //要使用queue,应先添加头文件#incl ...

  5. STL priority_queue 常见用法详解

    <算法笔记>学习笔记 priority_queue 常见用法详解 //priority_queue又称优先队列,其底层时用堆来实现的. //在优先队列中,队首元素一定是当前队列中优先级最高 ...

  6. STL vector常见用法详解

    <算法笔记>中摘取 vector常见用法详解 1. vector的定义 vector<typename> name; //typename可以是任何基本类型,例如int, do ...

  7. STL pair 常见用法详解

    <算法笔记>学习笔记 pair 常见用法详解 //pair是一个很实用的"小玩意",当想要将两个元素绑在一起作为一个合成元素, //又不想因此定义结构体时,使用pair ...

  8. STL stack 常见用法详解

    <算法笔记>学习笔记 stack 常见用法详解 stack翻译为栈,是STL中实现的一个后进先出的容器.' 1.stack的定义 //要使用stack,应先添加头文件#include &l ...

  9. STL map 常见用法详解

    <算法笔记>学习笔记 map 常见用法详解 map翻译为映射,也是常用的STL容器 map可以将任何基本类型(包括STL容器)映射到任何基本类型(包括STL容器) 1. map 的定义 / ...

随机推荐

  1. POJ1422 最小路径覆盖

    题意:      一个战场,往战场上投放伞兵,每个伞兵不能后退,只能往前走,问你最少多少个伞兵可以吧所有的点都占领. 思路:      这个题是最小路径覆盖,最小路径覆盖 = n - 最大匹配数,首先 ...

  2. hdu5247找连续数(打表)

    题意(中问题直接粘题意吧)                                 找连续数 Problem Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否 ...

  3. POJ2118基础矩阵快速幂

    题意:        an=Σ1<=i<=kan-ibi mod 10 000 for n >= k,题意看了好久才懂,有点蛋疼啊, 这个题目要是能看懂题意就简单了,先给你k,然后给 ...

  4. [CTF]ROT5/13/18/47位移密码

    [CTF]ROT5/13/18/47位移密码 ---------------转换网站 https://www.qqxiuzi.cn/bianma/ROT5-13-18-47.php ROT5:只对数字 ...

  5. 【python】Leetcode每日一题-矩阵置零

    [python]Leetcode每日一题-矩阵置零 [题目描述] 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 .请使用 原地 算法. 进阶: 一个直观的解 ...

  6. Google Chrome飞天小恐龙

    输入网址 chrome://dino/ ,F12->console,上代码 满分 Runner.instance_.setSpeed(99999); 不死护体 window.tempGameOv ...

  7. thinkphp 中区块block和模板继承extend用法举例

    1.介绍 模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义 ...

  8. phpstorm 实现分屏显示

  9. Mac OSX系统homebrew update Fetching failed问题解决方案

    1. brew update error (i) 问题出现及现象描述 昨天换了台电脑,有些软件需要重新安装或更新一下,遇到了下面的问题 cv@xys-MacBook-Pro ~ % brew upda ...

  10. Spring Cloud Alibaba Nacos Discovery 实战

    Nacos 作为服务注册中心,可以快速简单的将服务自动注册到 Nacos 服务端,并且能够动态无感知的刷新某个服务实例的服务列表,为分布式系统提供服务注册与发现功能 一.创建服务 1.创建项目 pom ...