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

目录
  • queue介绍
  • queue常用函数
    • 1.常用函数
    • 2.函数运用示例

queue介绍

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

许多程序都使用了 queue 容器。queue 容器可以用来表示超市的结账队列或服务器上等待执行的数据库事务队列。对于任何需要用 FIFO 准则处理的序列来说,使用 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()在队尾插入一个元素

 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

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

(0)

相关推荐

  • C++ Queue队列类模版实例详解

    目录 1.队列的介绍 2.代码实现 3.测试运行 总结 1.队列的介绍 队列的定义 队列(Queue)是一种线性存储结构.它有以下几个特点: 按照"先进先出(FIFO, First-In-First-Out)"方式进出队列. 队列只允许在"队首"进行取出操作(出队列),在"队尾"进行插入操作(入队列 ) 队列实现的方式有两种 基于动态数组实现 基于链表形式实现 队列需要实现的函数 T dequeue() : 出队列,并返回取出的元素 void e

  • c++优先队列(priority_queue)用法详解

    普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除. 在优先队列中,元素被赋予优先级.当访问元素时,具有最高优先级的元素最先删除.优先队列具有最高级先出 (first in, largest out)的行为特征. 首先要包含头文件#include<queue>, 他和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队. 优先队列具有队列的所有特性,包括队列的基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的. 和队列基本

  • 详解c++优先队列priority_queue的用法

    既然是队列那么先要包含头文件#include <queue>, 他和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队 优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的 和队列基本操作相同: top 访问队头元素 empty 队列是否为空 size 返回队列内元素个数 push 插入元素到队尾 (并排序) emplace 原地构造一个元素并插入队列 pop 弹出队头元素 swap 交换内容 定义:prio

  • C++ 中"priority_queue" 优先级队列实例详解

    C++ 中"priority_queue" 优先级队列实例详解 1. 简介 标准库队列使用了先进先出(FIFO)的存储和检索策略. 进入队列的对象被放置在尾部, 下一个被取出的元素则取自队列的首部. 标准库提供了两种风格的队列: FIFO 队列(FIFO queue, 简称 queue), 以及优先级队列(priority queue). priority_queue 允许用户为队列中存储的元素设置优先级. 这种队列不是直接将新元素放置在队列尾部, 而是放在比它优先级低的元素前面. 标

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

    目录 一.定义 一.queue初始化 二.queue常用函数 补充:queue 的基本操作举例如下 总结 一.定义 queue是一种容器转换器模板,调用#include< queue>即可使用队列类. 一.queue初始化 queue<Type, Container> (<数据类型,容器类型>) 初始化时必须要有数据类型,容器可省略,省略时则默认为deque 类型 初始化示例 1: queue<int>q1; queue<double>q2; q

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

    目录 queue介绍 queue常用函数 1.常用函数 2.函数运用示例 queue介绍 只能访问 queue<T> 容器适配器的第一个和最后一个元素.只能在容器的末尾添加新元素,只能从头部移除元素. 许多程序都使用了 queue 容器.queue 容器可以用来表示超市的结账队列或服务器上等待执行的数据库事务队列.对于任何需要用 FIFO 准则处理的序列来说,使用 queue 容器适配器都是好的选择. 调用#include< queue>即可使用队列类 queue<Type,

  • 超细致讲解Spring框架 JdbcTemplate的使用

    目录 JdbcTemplate基本使用 1-JdbcTemplate基本使用-概述(了解) 2-JdbcTemplate基本使用-开发步骤(理解) 3-JdbcTemplate基本使用-快速入门代码实现(应用) 4-JdbcTemplate基本使用-spring产生模板对象分析(理解) 5-JdbcTemplate基本使用-spring产生模板对象代码实现(应用) 6-JdbcTemplate基本使用-spring产生模板对象代码实现 7-JdbcTemplate基本使用-常用操作-更新操作(应

  • C语言超详细讲解队列的实现及代码

    目录 前言 队列的概念 队列的结构 队列的应用场景 队列的实现 创建队列结构 队列初始化 队列销毁 入队列 出队列 队列判空 获取队列元素个数 获取队列头部元素 获取队列尾部元素 总代码 Queue.h 文件 Queue.c 文件 Test.c 文件 前言 队列的概念 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头 队列和前文所学的栈

  • C语言简明讲解队列的实现方法

    目录 前言 队列的表示和实现 队列的概念及结构 代码实现 束语 前言 大家好啊,我又双叒叕来水博客了,道路是曲折的,前途是光明的,事物是呈螺旋式上升的,事物最终的发展结果还是我们多多少少能够决定的,好啦,吹水结束,这与这篇博客的主题并没有太多联系.关于栈和队列这一板块本来是想不写(就是想偷懒),但是想了想,觉得这样不太好,关于数据结构这一块可能会有缺失,所以最终还是决定写,必须补齐这一块,恰好最近有时间写博客,所以还是写了,这篇博客将介绍队列的知识点,理解链表那一块的操作后,栈和队列的相关操作还

  • ruby线程实现生产者消费者问题示例(队列Queue实现线程同步)

    Ruby线程实现经典的生产者消费者问题,用ruby中的Queue类实现线程同步问题. 复制代码 代码如下: require "thread"  puts "ProAndCon" queue = Queue.new    #用队列Queue实现线程同步 producer = Thread.new do      10.times do |i|          sleep rand(i) # 让线程睡眠一段时间          queue << i   

  • C#队列Queue多线程用法实例

    本文实例讲述了C#队列Queue多线程用法.分享给大家供大家参考.具体分析如下: 这里展示一个例子,供学习使用: private void button_测试Queue结合多线程_Click(object sender, EventArgs e) { Console.WriteLine("初始化队列"); queue = new Queue<string>(); string[] cars = new string[]{"宝马","奔驰&quo

  • C#使用foreach语句遍历队列(Queue)的方法

    本文实例讲述了C#使用foreach语句遍历队列(Queue)的方法.分享给大家供大家参考.具体如下: using System; using System.Collections; public class QueuesW3 { static void Main(string[] args) { Queue a = new Queue(10); int x = 0; a.Enqueue(x); x++; a.Enqueue(x); foreach (int y in a) { Console.

  • C#队列Queue用法实例分析

    本文实例分析了C#队列Queue用法.分享给大家供大家参考.具体分析如下: 队列(Queue)在程序设计中扮演着重要的角色,因为它可以模拟队列的数据操作.例如,排队买票就是一个队列操作,后来的人排在后面,先来的人排在前面,并且买票请求先被处理.为了模拟队列的操作,Queue在ArrayList的基础上加入了以下限制 1.元素采用先入先出机制(FIFO,First In First Out),即先进入队列的元素必须先离开队列.最先进入的元素称为队头元素. 元素只能被添加到队尾(称为入队),不允许在

  • c#队列Queue学习示例分享

    集合>队列Queue>创建队列 System.Collections.Queue类提供了四种重载构造函数. 复制代码 代码如下: using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections; namespace ConsoleApplication1{    class Program    {        static void Main(string[] arg

  • python队列Queue的详解

    Queue Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递 基本FIFO队列 class Queue.Queue(maxsize=0) FIFO即First in First Out,先进先出.Queue提供了一个基本的FIFO容器,使用方法很简单,maxsize是个整数,指明了队列中能存放的数据个数的上限.一旦达到上限,插入会导致阻塞,直到队列中的数据被消费掉.如果maxsize小

随机推荐