[c++基础]队列<queue>的使用方法

C++中只要#include<queue>即可使用队列类,常用函数(按常用顺序):

1. push

2. pop

3. size

4. empty

5. front

6. back

举例说明:

1. push

在队尾插入一个元素,如:

 1 #include<queue>
 2 #include<string>
 3 #include<iostream>
 4
 5 using namespace std;
 6
 7 int main(){
 8     queue<string> q;
 9     q.push("Hello World!");
10     q.push("China");
11     cout << q.front() << endl;
12 }

输出“Hello World!”

2. pop

将队列中最靠前位置的元素拿掉,是无返回值的void函数,如:

1 queue<string> q;
2 q.push("Hello World!");
3 q.push("China");
4 q.pop();
5 cout << q.front() << endl;  

输出China

3.size

返回队列中元素的个数,返回值类型为unsigned int。如:

1 queue<string> q;
2 cout << q.size() << endl;
3 q.push("Hello World!");
4 q.push("China");
5 cout << q.size() << endl;

输出两行,分别为0和2,即队列中的元素个数

4. empty

判断队列是否为空,若为空则返回true,如:

1 queue<string> q;
2 cout << q.empty() << endl;
3 q.push("Hello World!");
4 q.push("China");
5 cout << q.empty() << endl;    

输出两行,分别为1和0

5. front

返回值为队列第一个元素,即最先进入队列的元素。注意只是返回,并没有把它剔除出队列

1 queue<string> q;
2 q.push("Hello World!");
3 q.push("China");
4 cout << q.front() << endl;
5 q.pop();
6 cout << q.front() << endl;    

输出两行,分别是Hello World ! 和 China。只有使用了pop后,队列最早进入的元素才会被剔除

6. back

返回队列最后一个元素,即最晚入队的元素,如:

1 queue<string> q;
2 q.push("Hello World!");
3 q.push("China");
4 cout << q.back() << endl;

输出为China,因为它是最后入队的。这里back仅仅是返回最后一个元素,并没有剔除它

参考:

https://www.cnblogs.com/xuning/p/3321733.html

原文地址:https://www.cnblogs.com/cxc1357/p/12239134.html

时间: 2024-10-13 11:18:20

[c++基础]队列<queue>的使用方法的相关文章

C++ 标准模板库STL 队列 queue 使用方法与应用介绍

C++ 标准模板库STL 队列 queue 使用方法与应用介绍 queue queue模板类的定义在<queue>头文件中. 与stack模板类很相似,queue模板类也需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque类型. 定义queue对象的示例代码如下: queue<int> q1; queue<double> q2; queue的基本操作有: 入队,如例:q.push(x); 将x接到队列的末端. 出队,如例:

java中的队列Queue

一.概述 其位于java.util包下,声明:public interface Queue<E> extends Collection<E> 在处理元素前用于保存元素的 collection.除了基本的 Collection 操作外,队列还提供其他的插入.提取和检查操作.每个方法都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(null 或 false,具体取决于操作).插入操作的后一种形式是用于专门为有容量限制的 Queue 实现设计的:在大多数实现中,插入操作不

使用C#的泛型队列Queue实现生产消费模式

本篇体验使用C#的泛型队列Queue<T>实现生产消费模式. 如果把生产消费想像成自动流水生产线的话,生产就是流水线的物料,消费就是某种设备对物料进行加工的行为,流水线就是队列. 现在,要写一个体现生产消费模式的泛型帮助类,比如叫ProducerConsumer<T>. 该类肯定会维护一个有关生产.物料的Queue<T>类型的字段,还存在一个有关消费.Action<T>类型的字段. 在ProducerConsumer类的构造函数中,为Action<T&

Python--线程队列(queue)、multiprocessing模块(进程对列Queue、管道(pipe)、进程池)、协程

队列(queue) 队列只在多线程里有意义,是一种线程安全的数据结构. get与put方法 ''' 创建一个"队列"对象 import queue q = queue.Queue(maxsize = 10) queue.Queue类即是一个队列的同步实现.队列长度可为无限或者有限.可通过Queue的构造函数的可选参数maxsize来设定队列长度.如果maxsize小于1就表示队列长度无限. 将一个值放入队列中: q.put() 调用队列对象的put()方法在队尾插入一个项目.put()

Java集合 之 队列Queue集合

什么是Queue集合? 答:Queue用于模拟队列这种数据结构.队列通常是指“先进先出(FIFO)”的容器.队列的头部保存在队列中存放时间最长的元素,尾部保存存放时间最短的元素.新元素插入到队列的尾部,取出元素会返回队列头部的元素.通常,队列不允许随机访问队列中的元素. Queue接口中定义了如下的几个方法: void add(Object e): 将指定元素插入到队列的尾部. object element(): 获取队列头部的元素,但是不删除该元素. boolean offer(Object

ZooKeeper实现分布式队列Queue

ZooKeeper实现分布式队列Queue 让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让Hadoop集群跑在VPS虚拟主机上,通过云向用户提供存储和计算的服务. 现在硬件越来越便宜,一台非品牌服务器,2颗24核CPU,配48G内存,2T的硬盘,已经降到2万块人民币以下了.这种配置如果简单地放几个web应用,显然是奢侈的浪费.就算是用来实现单节点的hadoop,对计算资源浪费也是非常高的.对于这么高性能的计算机,如何有效利用计算资源,就成为成本控制的一项重要议题了. 通过

Python 单向队列Queue模块详解

单向队列Queue,先进先出 '''A multi-producer, multi-consumer queue.''' try: import threading except ImportError: import dummy_threading as threading from collections import deque from heapq import heappush, heappop from time import monotonic as time __all__ =

redis实现队列queue

参考:<Redis入门指南>第4章进阶 http://book.51cto.com/art/201305/395461.htm 4.4.2 使用Redis实现任务队列 说到队列很自然就能想到Redis的列表类型,3.4.2节介绍了使用LPUSH和RPOP命令实现队列的概念.如果要实现任务队列,只需要让生产者将任务使用LPUSH命令加入到某个键中,另一边让消费者不断地使用RPOP命令从该键中取出任务即可. 在小白的例子中,完成发邮件的任务需要知道收件地址.邮件主题和邮件正文.所以生产者需要将这三

用结点实现链表LinkedList,用数组和结点实现栈Stack,用数组和结点链表实现队列Queue

一,用结点实现链表LinkedList,不用换JavaAPI的集合框架 import java.util.Scanner; public class Main { public static class Node { int data; Node next=null; public Node(int data){this.data=data;}; } public static class MyLinkedList { Node head=null; public MyLinkedList()