C++中队列queue的用法实例详解

 更新时间:2022年04月02日 16:36:42   作者:KEPROM  
队列先进先出,即只能在容器的末尾添加新元素,只能从头部移除元素,下面这篇文章主要给大家介绍了关于C++中队列queue用法的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

一、定义

queue是一种容器转换器模板,调用#include< queue>即可使用队列类。

一、queue初始化

queue<Type, Container> (<数据类型,容器类型>)

初始化时必须要有数据类型,容器可省略,省略时则默认为deque 类型

初始化示例

1:

queue<int>q1;
queue<double>q2;  
queue<char>q3;
//默认为用deque容器实现的queue;

2:

queue<char, list<char>>q1;
//用list容器实现的queue 

queue<int, deque<int>>q2;
 //用deque容器实现的queue 

注意:不能用vector容器初始化queue

因为queue转换器要求容器支持front()、back()、push_back()及 pop_front(),说明queue的数据从容器后端入栈而从前端出栈。所以可以使用deque和list对queue初始化,而vector因其缺少pop_front(),不能用于queue。

二、queue常用函数

1.常用函数

  1. push() 在队尾插入一个元素
  2. pop() 删除队列第一个元素
  3. size() 返回队列中元素个数
  4. empty() 如果队列空则返回true
  5. front() 返回队列中的第一个元素
  6. back() 返回队列中最后一个元素

2.函数运用示例

1:push()在队尾插入一个元素

 queue <string> q;
    q.push("first");
    q.push("second");
    cout<<q.front()<<endl;

输出 first

2:pop() 将队列中最靠前位置的元素删除,没有返回值

queue <string> q;
    q.push("first");
    q.push("second");
    q.pop();
    cout<<q.front()<<endl;

输出 second 因为 first 已经被pop()函数删掉了

3:size() 返回队列中元素个数

  queue <string> q;
       q.push("first");
       q.push("second");
       cout<<q.size()<<endl;

输出2,因为队列中有两个元素

4:empty() 如果队列空则返回true

queue <string> q;
    cout<<q.empty()<<endl;
    q.push("first");
    q.push("second");
    cout<<q.empty()<<endl;

分别输出1和0

最开始队列为空,返回值为1(ture);

插入两个元素后,队列不为空,返回值为0(false);

5:front() 返回队列中的第一个元素

queue <string> q;
    q.push("first");
    q.push("second");
    cout<<q.front()<<endl;
    q.pop();
    cout<<q.front()<<endl;

第一行输出first;

第二行输出second,因为pop()已经将first删除了

6:back() 返回队列中最后一个元素

queue <string> q;
q.push("first");
q.push("second");
cout<<q.back()<<endl;

输出最后一个元素second

补充:queue 的基本操作举例如下

queue入队,如例:q.push(x); 将x 接到队列的末端。

queue出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。

访问queue队首元素,如例:q.front(),即最早被压入队列的元素。

访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。

判断queue队列空,如例:q.empty(),当队列空时,返回true。

访问队列中的元素个数,如例:q.size()

#include <cstdlib>
#include <iostream>
#include <queue>
using namespace std;
int main()
{
    int e,n,m;
    queue<int> q1;
    for(int i=0;i<10;i++)
       q1.push(i);
    if(!q1.empty())
    cout<<"dui lie  bu kong\n";
    n=q1.size();
    cout<<n<<endl;
    m=q1.back();
    cout<<m<<endl;
    for(int j=0;j<n;j++)
    {
       e=q1.front();
       cout<<e<<" ";
       q1.pop();
    }
    cout<<endl;
    if(q1.empty())
    cout<<"dui lie  bu kong\n";
    system("PAUSE");
    return 0;
}

运行结果:

dui lie  bu kong
10
9
0 1 2 3 4 5 6 7 8 9
dui lie  bu kong
请按任意键继续. . .

总结

到此这篇关于C++中队列queue用法的文章就介绍到这了,更多相关C++队列queue用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解如何使用openssl创建自签名证书

    详解如何使用openssl创建自签名证书

    这篇文章主要为大家介绍了详解如何使用openssl创建自签名证书示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • C语言标准时间与秒单位相互转换

    C语言标准时间与秒单位相互转换

    这篇文章主要介绍了C语言标准时间与秒单位相互转换,秒单位与标准时间的转换方式,这份代码一般用在嵌入式单片机里比较多,比如:设置RTC时钟的时间,从RTC里读取秒单位时间后,需要转换成标准时间显示。下文分享需要的小伙伴可以参考一下
    2022-05-05
  • C语言中scanf与scnaf_s函数详解

    C语言中scanf与scnaf_s函数详解

    大家好,本篇文章主要讲的是C语言中scanf与scnaf_s函数详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • 如何把C++的源代码改写成C代码的方法

    如何把C++的源代码改写成C代码的方法

    这篇文章主要介绍了如何把C++的源代码改写成C代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Visual Studio2022的完全卸载及安装到D盘的操作方法

    Visual Studio2022的完全卸载及安装到D盘的操作方法

    这篇文章主要介绍了Visual Studio2022的完全卸载以及完全安装到D盘,因为VS如果随便写在会有很多很多的乱七八糟的东西掉出来,所以我们选择制式一点的卸载方式,需要的朋友可以参考下
    2022-09-09
  • C语言基础之二分查找知识最全汇总

    C语言基础之二分查找知识最全汇总

    这篇文章主要介绍了C语言基础之二分查找知识最全汇总,文中有非常详细的二分查找基础知识详解,对正在学习C语言基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • C语言实现“幸运数”的实例详解

    C语言实现“幸运数”的实例详解

    这篇文章主要介绍了C语言实现“幸运数”的实例详解的相关资料,需要的朋友可以参考下
    2017-07-07
  • vc6.0中c语言控制台程序中的定时技术(定时器)

    vc6.0中c语言控制台程序中的定时技术(定时器)

    这篇文章主要介绍了vc6.0中c语言控制台程序中的定时技术(定时器),需要的朋友可以参考下
    2014-04-04
  • Cocos2d-x中获取系统时间和随机数实例

    Cocos2d-x中获取系统时间和随机数实例

    这篇文章主要介绍了Cocos2d-x中获取系统时间和随机数实例,本文代码含有大量注释来讲解获取系统时间和随机数的方法,需要的朋友可以参考下
    2014-09-09
  • C++实现归并排序(MergeSort)

    C++实现归并排序(MergeSort)

    这篇文章主要为大家详细介绍了C++实现归并排序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04

最新评论