首页 > 其他分享 >deque:双端队列库

deque:双端队列库

时间:2023-04-22 15:57:06浏览次数:30  
标签:deque begin deq1 end 队列 双端 元素 deq

#include <deque>
using namespace std;
deque<int> deq1; // 定义一个空的deque,元素类型为int
deque<int> deq2(10); // 定义一个大小为10的deque,元素类型为int,初始值为0
deque<int> deq3(10, 1); // 定义一个大小为10的deque,元素类型为int,初始值为1
deque<int> deq4 = {1, 2, 3}; // 使用花括号进行初始化
deque<int> deq5(deq4); // 使用拷贝构造函数进行初始化

#include <deque>
using namespace std;
deque<int> deq = {1, 2, 3};
// 获取deque的大小
int size = deq.size();
// 获取deque的某个位置的元素
int element = deq[0]; // 获取第一个元素
// 修改deque的某个位置的元素
deq[0] = 4; // 将第一个元素修改为4
// deque的插入和删除
deq.push_back(4); // 在deque的末尾插入一个元素
deq.push_front(0); // 在deque的开头插入一个元素
deq.insert(deq.begin() + 1, 5); // 在deque的第二个位置插入元素5
deq.erase(deq.begin() + 2); // 删除deque的第三个元素
deq.pop_front(); // 删除deque的第一个元素
deq.pop_back(); // 删除deque的最后一个元素
// deque的遍历
for (int i = 0; i < deq.size(); i++) {
    cout << deq[i] << " ";
}
for (int element : deq) {
    cout << element << " ";
}

#include <deque>
#include <algorithm>
using namespace std;
deque<int> deq = {3, 1, 4, 1, 5, 9};
// deque的排序
sort(deq.begin(), deq.end()); // 对deque进行排序
// deque的查找
auto it = find(deq.begin(), deq.end(), 4); // 查找4在deque中的位置
if (it != deq.end()) {
    cout << "4 found at position " << it - deq.begin() << endl;
} else {
    cout << "4 not found" << endl;
}
// deque的拼接
deque<int> deq1 = {1, 2};
deque<int> deq2 = {3, 4};
deq1.insert(deq1.end(), deq2.begin(), deq2.end()); // 将deq2中的元素插入到deq1的末尾
// deque的反转
reverse(deq1.begin(), deq1.end()); // 反转deque

标签:deque,begin,deq1,end,队列,双端,元素,deq
From: https://www.cnblogs.com/full-stack-linux-new/p/17343231.html

相关文章

  • Luggage Pickup PTA(栈和队列的使用)
    题目Whenaflightarrives,thepassengerswillgototheArrivalsareatopickuptheirbaggagefromaluggageconveyorbelt(行李传送带).Nowassumethatwehaveaspecialairportthathasonlyonepickupwindowforeachconveyorbelt.Thepassengersareaske......
  • 力扣 406. 根据身高重建队列
    406.根据身高重建队列假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i]=[hi,ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。请你重新构造并返回输入数组 people 所表示......
  • 单调队列优化
    1.子矩阵来源:第十四届蓝桥杯省赛C++C组题目链接题目描述给定一个$n×m$($n$行$m$列)的矩阵。设一个矩阵的价值为其所有数中的最大值和最小值的乘积。求给定矩阵的所有大小为$a×b$($a$行$b$列)的子矩阵的价值的和。答案可能很大,你只需要输出答案对$998244353......
  • 单调队列(例题详解+模板cpp)
    有一类问题需要维护一段区间内的最大值或最小值,例如滑动窗口、区间最值等问题。一般情况下,我们可以使用线段树、ST表等数据结构来解决这类问题,但是这些数据结构的实现较为复杂,需要一定的时间和精力来学习和掌握。而单调队列则是一个简单而高效的数据结构,可以用来解决这类问题。基本......
  • 队列
    队列:也是一个线性表(即包括顺序队列和链式队列),先进先出,但限制在两端进行插入和删除队尾:进行存入操作的一端队头:进行删除操作的一端顺序队列://sqqueue.h#ifndef_SQ_QUEUE_H_H#define_SQ_QUEUE_H_H#defineN6typedefintdata_t;typedefstruct{data......
  • 队列和栈的简单实现
    简单实现2个数据结构,来帮助我们更好的处理数据基本队列(Queue)是一种先进先出(FIFO)的数据结构,通常用于按照顺序处理任务或事件。在前端中,队列可以用于实现异步函数的调用、消息通知、动画播放等场景。队列还可以和数组结合使用,通过push()方法将元素添加到队列尾部,shift()方法将......
  • 双端队列数据结构
    双端队列是一种数据结构,也被称为deque或double-endedqueue。它类似于队列,但它允许从队列的两端添加或删除元素,而不仅仅是队列的一端。双端队列可以用数组或链表实现。如果使用数组实现,它可以使用循环数组的方式,使得在头尾进行插入和删除的操作可以在常数时间内完成。如果使用链......
  • C# 获取打印机队列的打印任务
    //引入命名空间:usingSystem.Runtime.InteropServices;[DllImport("winspool.drv",CharSet=CharSet.Auto,SetLastError=true)]privatestaticexternboolSetDefaultPrinter(stringprinterName);[DllImport("winspool.drv&quo......
  • w4-1 队列安排
     方法一:#include<iostream>#include<queue>#include<vector>usingnamespacestd;//究极愚蠢queue+vector模拟tleintmain(){queue<int>a;intN,M,judge,k,x;cin>>N;a.push(0);a.push(1);for(inti=2;i<......
  • RabbitMQ队列和交换机的相关知识点
    1、关于交换机和队列的autodelete属性交换机的autodelete属性作用:当属性值设置为true,那么当所有的队列断开于交换机的绑定,那么交换机会自动删除队列的autodelete属性作用:自动删除队列和普通队列在使用上没有什么区别,唯一的区别是,当所有的相关消费者断开连接时,队列将会被删除2......