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用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++访问者模式模板函数无法重载的问题解决

    C++访问者模式模板函数无法重载的问题解决

    本文主要介绍了C++访问者模式模板函数无法重载的问题解决,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • c语言全局变量和局部变量问题及解决汇总

    c语言全局变量和局部变量问题及解决汇总

    局部变量能否和全局变量重名,如何引用一个已经定义过的全局变量,全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?,接下来为您一一介绍
    2013-01-01
  • Qt 信号自定义槽函数的实现

    Qt 信号自定义槽函数的实现

    Qt中实现自定义信号与槽函数,信号用于发送并触发槽函数,槽函数则是具体的功能实现,本文就详细的介绍一下如何使用,感兴趣的可以了解一下
    2021-11-11
  • Java C++ 算法题解leetcode145商品折扣后最终价格单调栈

    Java C++ 算法题解leetcode145商品折扣后最终价格单调栈

    这篇文章主要介绍了Java C++ 算法题解leetcode145商品折扣后最终价格单调栈示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • C语言动态内存分配和内存操作函数使用详解

    C语言动态内存分配和内存操作函数使用详解

    但是在实际的编程中,往往会发生这种情况,即所需的内存空间取决于实际输入的数据,而无法预先确定 。为了解决上述问题,C语言提供了一些内存管理函数,这些内存管理函数可以按需要动态的分配内存空间,也可把不再使用的空间回收再次利用
    2022-12-12
  • C++日志记录类实例解析

    C++日志记录类实例解析

    这篇文章主要介绍了C++日志记录类实例,代码功能非常实用,需要的朋友可以参考下
    2014-07-07
  • 使用Qt开发实现字幕滚动效果

    使用Qt开发实现字幕滚动效果

    我们经常能够在外面看到那种滚动字幕,那么就拿qt来做一个吧,文章通过代码示例给大家介绍的非常详细,对大家的学习或工作有有一定的参考价值,需要的朋友可以参考下
    2023-11-11
  • 关于PCL出现"无法找到 pcl_commond.dll 文件程序无法执行"的问题及解决方法

    关于PCL出现"无法找到 pcl_commond.dll 文件程序无法执行"的问题及解决方法

    这篇文章主要介绍了PCL出现"无法找到 pcl_commond.dll 文件程序无法执行"的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • C语言执行程序时遇到的常见问题及解决

    C语言执行程序时遇到的常见问题及解决

    这篇文章主要介绍了C语言执行程序时遇到的常见问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • C++实现LeetCode(64.最小路径和)

    C++实现LeetCode(64.最小路径和)

    这篇文章主要介绍了C++实现LeetCode(64.最小路径和),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07

最新评论