头文件:#include<deque>


构造方法:

①、创建一个没有任何元素的双端队列:deque<type> deq

②、用另一个类型相同双端队列初始化该双端队列:deque<type> deq(otherDeq)

③、初始化一个固定size的双端队列:deque<type> deq(size)

④、初始化n个相同元素的双端队列:deque<type> deq(n, element)

⑤、初始化双端队列中的某一段元素,从begin 到 end-1:deque<type> deq(begin, end)


操作:

①、赋值n个元素的拷贝给双端队列:deq.assign(n,elem)

②、赋值一段迭代器的值给双端队列:deq.assign(beg,end)

③、添加一个元素在开头(结尾同理):deq.push_front(elem)

④、删除第一个元素(结尾同理):deq.pop_front()

⑤、取固定位置的元素:deq.at(index)

⑥、取固定位置的元素:deq[index]

⑦、返回第一个元素(不检测容器是否为空):deq.front()

⑧、返回最后一个元素(不检测容器是否为空):deq.back()


例题:

HUD6375 度度熊学队列

#include<bits/stdc++.h>

using namespace std;
#define mem(a,b) memset(a,b,sizeof(a))
const int maxn=15e4+;
int n,m,w;
map<int,deque<int> > a;
void read(int &x)
{
char ch = getchar();x = ;
for (; ch < '' || ch > ''; ch = getchar());
for (; ch >='' && ch <= ''; ch = getchar()) x = x * + ch - '';
}
int main()
{
int i,j;
while(scanf("%d%d",&n,&m)!=EOF){
for(i=;i<=n;i++) a[i].clear();
int ki,u,v;
while(m--){
read(ki);
if(ki==){
read(u),read(w),read(v);
if(w==) a[u].push_front(v);
else a[u].push_back(v);
}
else if(ki==){
read(u),read(w);
if(a[u].empty()){
printf("-1\n");
}
else{
if(w==){
printf("%d\n",a[u].front());
a[u].pop_front();
}
else{
printf("%d\n",a[u].back());
a[u].pop_back();
}
}
}
else{
read(u),read(v),read(w);
if(w){
a[u].insert(a[u].end(),a[v].rbegin(),a[v].rend()),a[v].clear();
}
else a[u].insert(a[u].end(),a[v].begin(),a[v].end()),a[v].clear();
}
}
}
return ;
}

STL双端队列 deque的更多相关文章

  1. C++ STL 双端队列deque详解

    一.解释 Deque(双端队列)是一种具有队列和栈的性质的数据结构.双端队列的元素可以从两端弹出,其限定插入和删除操作在表的两端进行. 二.常用操作: 1.头文件 #include <deque ...

  2. UVA 246 10-20-30 10-20-30游戏 模拟+STL双端队列deque

    Input Each input set consists of a sequence of 52 integers separated by spaces and/or ends of line. ...

  3. 【C++】STL常用容器总结之五:双端队列deque

    6.双端队列deque 所谓的deque是”double ended queue”的缩写,双端队列不论在尾部或头部插入元素,都十分迅速.而在中间插入元素则会比较费时,因为必须移动中间其他的元素.双端队 ...

  4. 双端队列-deque【集vector与list于一身的牺牲内存换功能完善】

    看到双端队列(deque)了,书上是这样说的:除了栈和队列外还有一种限定性数据结构是双端队列:双端队列是限定插入和删除操作在表的两端进行的线性表:尽管双端队列看起来似乎比栈和队列更灵活,但实际上在应用 ...

  5. STL队列 之FIFO队列(queue)、优先队列(priority_queue)、双端队列(deque)

    1.FIFO队列   std::queue就是普通意思上的FIFO队列在STL中的模版. 1.1主要的方法有: (1)T front():访问队列的对头元素,并不删除对头元素 (2)T back(): ...

  6. 关于双端队列 deque 模板 && 滑动窗口 (自出)

    嗯... deque 即为双端队列,是c++语言中STL库中提供的一个东西,其功能比队列更强大,可以从队列的头与尾进行操作... 但是它的操作与队列十分相似,详见代码1: 1 #include < ...

  7. Python 实现双端队列 Deque

    操作 Deque() 创建一个空的双端队列 add_front(item) 从队头加入一个item元素 add_rear(item) 从队尾加入一个item元素 remove_front() 从队头删 ...

  8. 06 基本数据结构 - 双端队列(Deque)

    一.双端队列(Deque) - 概念:deque(也称为双端队列)是与队列类似的项的有序集合.它有两个端部,首部和尾部,并且项在集合中保持不变. - 特性:deque 特殊之处在于添加和删除项是非限制 ...

  9. HDU-6375-度度熊学队列-双端队列deque/list

    度度熊正在学习双端队列,他对其翻转和合并产生了很大的兴趣. 初始时有 NN 个空的双端队列(编号为 11 到 NN ),你要支持度度熊的 QQ 次操作. ①11 uu ww valval 在编号为 u ...

随机推荐

  1. poj2010 Moo University - Financial Aid 优先队列

    Description Bessie noted that although humans have many universities they can attend, cows have none ...

  2. 使EasyUI的window、panel、dialog 不被拖出页面

    function easyuiPanelOnMove(left, top) {  var l = left;  var t = top;  if (l < 1) {    l = 1;  }  ...

  3. C# 身份证号码验证正则和验证函数

    做身份证验证的时候要求能够按照标准18位身份证验证,普通正则表达式不能满足需求,所以在网上找到了这个函数,很好用,虽然还是有漏洞,不过一般乱填的号码都能被屏蔽掉 身份证验证函数(标准18位验证) pr ...

  4. 5G网络的深度强化学习:联合波束成形,功率控制和干扰协调

    摘要:第五代无线通信(5G)支持大幅增加流量和数据速率,并提高语音呼叫的可靠性.在5G无线网络中共同优化波束成形,功率控制和干扰协调以增强最终用户的通信性能是一项重大挑战.在本文中,我们制定波束形成, ...

  5. deepin下安装配置git

    https://blog.csdn.net/menglinjie/article/details/77145537 1.安装gitsudo apt-get install git12.配置用户名和邮箱 ...

  6. TypeError: reduction operation 'argmin' not allowed for this dtype

    解决方法:在idxmax()前加.astype(‘float64’) .argmin() .argmax() 计算最大.小值所在位置的索引(针对自动索引的)(适用于Series类型:) .idxmin ...

  7. Java中的I/O

    1.Java中的I/O分类 I/O分类: 输入流,输出流,或者字节流,字符流 I/O中的四个抽象基类: InputStream,OutputStream:两者属于字节流,前者输入,后者输出.一般后缀名 ...

  8. JavaScript深入之词法作用域和动态作用域(转载)

    作用域 作用域是指程序源代码中定义变量的区域. 作用域规定了如何查找变量,也就是确定当前执行代码对变量的访问权限. JavaScript 采用词法作用域(lexical scoping),也就是静态作 ...

  9. python时间的获取

    一.获取当前时间 import datetime # 2019-7-9 print(datetime.datetime.now().year) # 2019 print(datetime.dateti ...

  10. Collection集合家族

    集合家族 数组:存储相同类型的多个元素 对象:存储不同类型的多个元素 集合:存储多个不同类型的对象 List List继承自Collection接口,是有序可重复的集合. 它的实现类有:ArrayLi ...