首页 > 其他分享 >STL-queue&deque&stack

STL-queue&deque&stack

时间:2024-10-07 15:22:08浏览次数:6  
标签:deque STL 元素 pop queue 队列 push stack

STL queue&deque&stack

queue主要包括循环队列queue和优先队列priority_queue两个容器

stack包含栈容器

include 头文件声明
#include <queue>
#include <deque>
#include <stack>
声明
queue<int> q;
deque<int> p;

struct abc{…}; 
queue<abc> q; 	//结构体rec中必须定义小于号

priority_queue<int> q;		// 大根堆

priority_queue<int, vector<int>, greater<int> q;	// 小根堆

priority_queue<pair<int, int>>q;

stack声明和其他的容器类似

queue:

首先插入的元素将首先被提取,依此类推

有一个称为“前”的元素,它是位于最前位置或位于第一个位置的元素,也有一个名为“后”的元素,它是位于最后位置的元素

在普通队列中,元素的插入在尾部,而删除则从前面开始

优先队列是普通队列的扩展版本,对优先级最高的元素首先进行操作

/////

循环队列 queue

push 从队尾插入

pop 从队头弹出

front 返回队头元素

back 返回队尾元素

push()
pop()
front()
back()

超过限制会循环进行

/////

优先队列 priority_queue

push 把元素插入堆

pop 删除堆顶元素

top 查询堆顶元素(最大值)

push()
pop()
top()
deque:

双端队列deque是一个支持在两端高效插入或删除元素的连续线性存储空间

就像是vector和queue的结合

与vector相比,deque在头部增删元素仅需要O(1)的时间

与queue相比,deque像数组一样支持随机访问

/////

begin/end,返回deque的头/尾迭代器

front/back 队头/队尾元素

push_back 从队尾入队

push_front 从队头入队

pop_back 从队尾出队

pop_front 从队头出队

clear 清空队列

效率较慢

stack:

首先插入的元素将在末尾提取,以此类推。有一个名为“top”的元素,它是位于最上面位置的元素

所有插入和删除操作都是在堆栈的顶部元素本身进行的

/////

push 向栈顶插入

pop 弹出栈顶元素

push()
pop()

标签:deque,STL,元素,pop,queue,队列,push,stack
From: https://www.cnblogs.com/dianman/p/18450134

相关文章

  • openstack hypervisor
    openstackhypervisorhttps://docs.redhat.com/en/documentation/red_hat_openstack_platform/8/html/configuration_reference_guide/section_compute-hypervisors#kvm-intelRedHatOpenStackPlatformisonlysupportedforusewiththelibvirtdriver(usingKVMas......
  • STL-vector
    STLvectorvector是动态数组,支持随机访问,不支持在任意位置O(1)插入为,元素的增删一般在末尾进行include头文件声明vectora;相当于声明一个长度动态变化的int数组vectorb[233];相当于声明一个第一维长233,第二维长度动态变化的int数组structabc{...};vectorc;自定......
  • STL-queue&stack
    STLqueue&stackqueue主要包括循环队列queue和优先队列priority_queue两个容器stack包含栈容器include头文件声明#include<queue>#include<stack>声明queue<int>q;structabc{…};queue<abc>q; //结构体rec中必须定义小于号priority_queue<int>q; //大根......
  • STL
    vector是动态数组,支持随机访问,不支持在任意位置O(1)插入为,元素的增删一般在末尾进行include头文件声明vectora;相当于声明一个长度动态变化的int数组vectorb[233];相当于声明一个第一维长233,第二维长度动态变化的int数组structabc{...};vectorc;自定义的结构体类......
  • STL <vector>
    vector是动态数组,支持随机访问,不支持在任意位置O(1)插入为,元素的增删一般在末尾进行include 头文件声明vectora; 相当于声明一个长度动态变化的int数组vectorb[233]; 相当于声明一个第一维长233,第二维长度动态变化的int数组structabc{...};vectorc; 自定义的结构体......
  • TStackPanel 与 TFlowPanel
    TStackPanelTStackPanel(在Delphi中通常称为TStackPanel或类似的名称,具体可能因版本或第三方库而异)是一个用于在用户界面(UI)中按照特定方向堆叠子元素的布局容器。虽然Delphi标准库中没有直接名为TStackPanel的控件,但类似的功能可以通过其他控件(如TPanel结合布局管理......
  • rustling学习随笔
    序言rustling是一个关于rust的练习题的项目.可以帮助大家通过完成一个项目的方式练习rust的语法,我认为对于补充我rust现学现卖过程中的情况很有帮助.下边是GPT对它的介绍:Rustling是专为那些想要学习Rust编程语言的人设计的一个交互式练习集合。无论你是编程新手还是有经......
  • 力扣(leetcode)每日一题 1845 座位预约管理系统| treeSet和priority Queue的区别|线段树
    之前发过一篇,感觉还有深挖的地方,于是又补充一些信息这题目虽然是middle难度题目,要解答出来是只要easy的时间,但是深挖可以有hard的难度题解1可以帮助复习线段树的使用,题解2可以复习一下java基础知识题解1线段树这是自己憋出来的线段树classSeatManager{......
  • STL之list篇(下)(从底层分析实现list容器,逐步剥开list的外表)
    文章目录前言一、list的数据结构和类实现需求1.1数据结构1.2list类实现需求二、list迭代器的实现2.1为什么list不能直接把迭代器当作指针一样使用?2.2list迭代器的框架设计2.3`*`和`->`操作符的重载2.4`++`和`--`操作符的重载2.5`!=`和`==`操作符的重载三、l......
  • 【C++ STL】深入理解string类的底层实现
    string类的模拟实现一.string的构造与析构函数1.普通构造函数与析构函数2.拷贝构造的浅拷贝所带来的问题3.如何实现深拷贝二.运算符重载1.赋值运算符重载2.大小比较相关的运算符重载三.迭代器的实现四.string常用操作的实现1.静态const成员npos的定义2.插入操作3.查找......