服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C++超细致讲解队列queue的使用

C++超细致讲解队列queue的使用

2022-11-24 11:50panamera12 C/C++

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

queue介绍

只能访问 queue<T> 容器适配器的第一个和最后一个元素。只能在容器的末尾添加新元素,只能从头部移除元素。

许多程序都使用了 queue 容器。queue 容器可以用来表示超市的结账队列或服务器上等待执行的数据库事务队列。对于任何需要用 FIFO 准则处理的序列来说,使用 queue 容器适配器都是好的选择。

C++超细致讲解队列queue的使用

调用#include< queue>即可使用队列类

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

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

queue<int>q1;

queue<double>q2;

queue<char>q3;

//默认为用deque容器实现的queue;

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

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

queue 的生成方式和 stack 相同,下面展示如何创建一个保存字符串对象的

std::queue<std::string> words;

也可以使用拷贝构造函数:

std::queue<std::string> copy_words {words}; // A duplicate of words

stack<T>、queue<T> 这类适配器类都默认封装了一个 deque<T> 容器,也可以通过指定第二个模板类型参数来使用其他类型的容器:

std::queue<std::string, std::list<std::string>>words;

底层容器必须提供这些操作:front()、back()、push_back()、pop_front()、empty() 和 size()。

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

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

queue常用函数

1.常用函数

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

2.函数运用示例

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

?
1
2
3
4
queue <string> q;
   q.push("first");
   q.push("second");
   cout<<q.front()<<endl;

输出 first

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

?
1
2
3
4
5
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

?
1
2
3
4
5
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

到此这篇关于C++超细致讲解队列queue的使用的文章就介绍到这了,更多相关C++队列queue内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/wteruiycbqqvwt/article/details/124640835

延伸 · 阅读

精彩推荐
  • C/C++C语言数据结构之图书借阅系统

    C语言数据结构之图书借阅系统

    这篇文章主要为大家详细介绍了C语言数据结构之图书借阅系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    「违规用户」3592022-10-17
  • C/C++C++小知识:尽可能使用枚举类

    C++小知识:尽可能使用枚举类

    今天小编就为大家分享一篇关于C++小知识:尽可能使用枚举类,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来...

    修语讲编程6392021-07-18
  • C/C++C语言分支循环其嵌套语句的使用

    C语言分支循环其嵌套语句的使用

    本文主要介绍了switch 嵌套和循环嵌套,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    7602022-02-22
  • C/C++浅谈C语言中的sizeof()和strlen()的区别

    浅谈C语言中的sizeof()和strlen()的区别

    本文主要介绍了C语言中的sizeof()和strlen()的区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    zhaocx1112223337992022-11-24
  • C/C++用C语言简单实现扫雷小游戏

    用C语言简单实现扫雷小游戏

    这篇文章主要为大家详细介绍了用C语言简单实现扫雷小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    长路不漫漫4652021-12-10
  • C/C++浅谈C++内存分配及变长数组的动态分配

    浅谈C++内存分配及变长数组的动态分配

    下面小编就为大家带来一篇浅谈C++内存分配及变长数组的动态分配。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    C++教程网3652021-04-15
  • C/C++基于C语言实现简单的走迷宫游戏

    基于C语言实现简单的走迷宫游戏

    这篇文章主要介绍了基于C语言实现简单的走迷宫游戏,用到双向队列,方便在运行完毕后输出经过的点,文中示例代码介绍的非常详细,具有一定的参考价...

    LiaoGlenn12082021-03-30
  • C/C++C语言中函数的声明、定义及使用的入门教程

    C语言中函数的声明、定义及使用的入门教程

    这篇文章主要介绍了C语言中函数的声明、定义及使用的入门教程,重点讲述了main函数的相关知识,需要的朋友可以参考下...

    C语言教程网8242021-03-17