首页 > 其他分享 >queue

queue

时间:2024-02-01 15:26:20浏览次数:17  
标签:greater 队列 元素 back queue front

queue队列

queue是一种先进先出的数据结构。好比一根管道。
push(x)在队尾插入元素x
pop()弹出队首元素
front()返回队首元素,常与上一个组合使用
back()返回队尾元素
empty()检查队列是否为空
size()返回队列中元素的个数

priority_queue优先队列

优先队列是按一定的优先级进行排序的,默认按元素的值从大到小进行排序,即最大的元素位于队列的前面。为树形结构
根为top,叶子不用管C++帮我们搞好了。
push(x)插入O(logN)
pop()弹出优先队列的顶部元素O(logN)
top()返回优先队列中的顶部元素O(1)
empty()判空O(1)
size()返回队列元素个数O(1)
修改比较函数
仿函数:

struct Compare{
	bool operator()(int a,int b){
		return a>b;
	}
}

int main(){
	priority_queue<int,vector<int>, Compare> pq;
}

也可把Compare直接改为greater<int>(默认为less),将大根堆改为小根堆greater函数对象定义在<functional>头文件中。
如下:
priority_queue<int,vector<int>, greater<int> >;注意此处一定要加空格">>"写在一起是右移运算符。
平时如果从大到小就不用后面的vector<int>greater<int> >;

deque双端队列

允许在两端进行高效插入与删除操作。
push_back(x)在尾部插入元素x
push_front(x)在头部插入元素x
pop_back()弹出尾部元素
pop_front()
front()返回头部元素
back()返回尾部元素
empty()判空
clear()清空

标签:greater,队列,元素,back,queue,front
From: https://www.cnblogs.com/breadcheese/p/18001326

相关文章

  • python的十大数据结构之堆队列heapq(heap queue)
    heapqueque(堆队列),是一个完全二叉树,并且满足一个条件:每个节点(叶节点除外)的值都大于等于(或小于等于)它的子节点。提供了构建小顶堆的方法和一些小顶堆的基本操作方法(如入堆、出堆等),可以用于实现堆排序算法。创建堆的两种方法:importheapqlists=[3,10,20,52,2,83,52......
  • Mocha MemoryBufferQueue 设计概述
    目录前言MemoryBufferQueue功能概述Buffer模块API设计MemoryBufferQueue的设计Partition的设计对并发的支持Partition的动态扩容Segment的回收机制前言Mocha是一个基于.NET开发的APM系统,同时提供可伸缩的可观测性数据分析和存储平台。更多关于Mocha的介绍,可以参......
  • Qt QQueue 详解:从底层原理到高级用法
    引言:QQueue的重要性与简介在现代软件开发中,数据结构和算法扮演着至关重要的角色。它们为程序员提供了处理各种不同场景下数据的有效方法。QQueue(队列)是一种常见且实用的数据结构,它在许多应用中都发挥着关键作用。本文将简要介绍QQueue的重要性和简介。队列(Queue)是一种遵......
  • Failed to run the WC DB work queue associated with 错误的解决
    svncheckout代码是出现如标题的错误,提示我cleanup,cleanup失败,于是网上搜到了这一cleanup失败的解决方法,cleanup后再进入代码update就可以了svn提交遇到恶心的问题,可能是因为上次cleanup中断后,进入死循环了。解决方法:清空svn的队列1.下载 sqlite3  2.找到你项目......
  • workQueue
    线程池参数的workQueue决定了缓存任务的排队策略,对于不同的业务场景,我们可以使用不同的排队策略。我们只需要实现BlockingQueue这个接口即可。介绍一下常用的有三种workQueue。1.SynchronousQueueSynchronousQueue没有容量,是无缓冲等待队列,是一个不存储元素的阻塞队列,会......
  • priority_queue简介与用法(优先队列)
    priority_queue简介与用法 一、简介 1.概念priority_queue是C++标准库中的一个容器适配器(containeradapter),用于实现优先队列(priorityqueue)的数据结构。优先队列是一种特殊的队列,其中的元素按照一定的优先级进行排序,每次取出的元素都是优先级最高的。它的底层实现通常使......
  • C转C++速成浅入浅出系列——STL之queue
    本系列为应付考研复试用,知识浅入浅出,很多地方不深究细节原理;如有谬误,欢迎大家指出。queue【queue:队伍,队列】(学过数据结构的熟的不能再熟了吧)理解为队列。特点是①先入先出②只能对队伍的队首进行出队操作,对队伍的队尾进行入队操作。需提供头文件#include<queue>由于队列的......
  • 说说Java的AbstractQueuedSynchronizer
    Java中的Lock锁,都是基于AQS,也就是AbstractQueuedSynchronizer。那么AbstractQueuedSynchronizer又是基于什么原理来做锁的呢?一:锁原理1. 怎么算获取到了锁?AQS内置了一个volatileintstate字段,利用CAS保证并发安全,当state=0表示没没有线程占用。只要线程设置了state(比如置为1,......
  • Binary tree traversal-- level-order traversal using queue【1月23日学习笔记】
    点击查看代码//Binarytreetraversal--level-ordertraversalusingqueue#include<iostream>#include<queue>//STLusingnamespacestd;structnode{intdata;node*left,*right;};node*getnewnode(intx){node*temp=newnode;t......
  • 【10.0】线程queue
    【零】队列queue介绍queue队列:使用importqueue,用法与进程Queue一样queueisespeciallyusefulinthreadedprogrammingwheninformationmustbeexchangedsafelybetweenmultiplethreads.classqueue.Queue(maxsize=0)先进先出importqueueq=queue.Queue()......