deque是STL里面的常见容器,它的本质是一个队列,但是与队列不同是的是,它可以两边进出。

下面是STL的一些常见操作。

que.assign(beg,end) 将[beg; end)区间中的数据赋值给que。

que.assign(n,elem) 将n个elem的拷贝赋值给que。

que. at(idx) 传回索引idx所指的数据,如果idx越界,抛出out_of_range。
que.back() 返回容器que的最后一个元素的引用。如果que为空,则该操作未定义。
que.begin() 传回迭代器中的第一个数据地址。
que.clear() 移除容器中所有数据。
que.empty() 判断容器是否为空。
que.end() 返回一个迭代器,它指向容器que的最后一个元素的下一位置。
que.erase(pos) 删除pos位置的数据,传回下一个数据的位置。
que.erase(beg,end) 删除[beg,end)区间的数据,传回下一个数据的位置。
que.front() 返回容器que的第一个元素的引用。如果que为空,则该操作为空。
que.insert(pos,elem) 在pos位置插入一个elem拷贝,传回新数据位置
que.insert(pos,n,elem) 在pos(迭代器)位置插入>n个elem数据。无返回值
que.insert(pos,beg,end) 在pos位置插入在[beg,end)区间的数据。无返回值
que.max_size() 返回容器que可容纳的最多元素个数。
que.pop_back() 删除最后一个数据。
que.pop_front() 删除头部数据。
que.push_back(elem) 在尾部加入一个数据。
que.push_front(elem) 在头部插入一个数据。
que.rbegin() 返回一个逆序迭代器,它指向容器que的最后一个元素。
que.rend() 返回一个逆序迭代器,它指向容器que的第一个元素的前一个位置。
que.resize(num) 重新指定队列的长度。
que.size() 返回容器中实际数据的个数。
que.swap(que2) 交换容器que和que2中的所有元素。
swap(que1,que2) 交换容器que1和que2中的所有元素。
 
下面推荐一道模板题。

P2952 [USACO09OPEN]牛线Cow Line

#include<bits/stdc++.h>
using namespace std;
deque<int>q;
int n,T,t;
char s,ss;
int main()
{
cin>>T;
for(int i=;i<=T;i++)
{
cin>>s>>ss;
if(s=='A')
{
if(ss=='L')
{
t++;
q.push_front(t);
}
if(ss=='R')
{
t++;
q.push_back(t);
}
}
if(s=='D')
{
if(ss=='L')
{
int k;
cin>>k;
for(int j=; j<=k; j++)
q.pop_front();
}
if(ss=='R')
{
int k;
cin>>k;
for(int j=; j<=k; j++)
q.pop_back();
}
}
}
while(!q.empty())
{
int u=q.front();
q.pop_front();
cout<<u<<endl;
}
}

deque 归纳的更多相关文章

  1. (4)java数据结构--集合类及其数据结构归纳-有大图

    Java集合类及其数据结构归纳 - s小小的我 - 博客园http://www.cnblogs.com/shidejia/p/6433788.html ---------大图可以 在新标签中打开图片 ...

  2. 【JDK】JDK源码-Queue, Deque

    概述 Queue 和 Deque 都是接口.其中 Queue 接口定义的是一个队列,它包含队列的基本操作:入队(enqueue)和出队(dequeue). Deque 接口继承自 Queue 接口,表 ...

  3. C++ std::deque

    std::deque template < class T, class Alloc = allocator > class deque; Double ended queue deque ...

  4. AndroidProjects个人项目归纳

    AndroidProjects 个人总结归纳-目录大纲 Data Binding框架MVVM BaseView CollapseView 更新中... 项目地址:https://github.com/ ...

  5. collections 模块(namedtuple, deque, Counter )

    基本介绍 我们都知道,Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型 ...

  6. vector、list、deque三者比较

    1.vector是一段连续的内存块,而deque是多个连续的内存块,list是所有数据元素分开保存,可以是任何两个元素都没有连续. 2.vector的查询性能最好,并且的末端增加数据也很好,除非它重新 ...

  7. STL之deque

    deque是一种优化了的,对序列两段进行添加和删除操作的基本序列容器.它允许较为快速的随机访问,但它不像vector把所有对象保存在一块连续的内存块,而是采用多个连续的存储块.向deque两段添加或删 ...

  8. Deque的部分成员函数 解析,关于这个类,百度有很多解析,唯独没有其函数介绍

    函数 描述 c.assign(beg,end) c.assign(n,elem) 将[beg; end)区间中的数据赋值给c. 将n个elem的拷贝赋值给c. c.at(idx) 传回索引idx所指的 ...

  9. Python_Day_05 计数器(counter),有序字典(OrderDict),默认字典(defaultdict),可命名元祖(namedtuple),双向队列(deque),单项队列(deuqe.Queue)

    Counter(计数器) 是一个字典的子类,存储形式同样为字典,其中存储的键为字典的元素,值为元素出现的次数,在使用之前我们需要先导入文件 import collections 初始化一个计数器 im ...

随机推荐

  1. [Hyperapp] Render Text with JSX in Hyperapp

    Hyperapp is an ultra lightweight (1kb), minimal, functional, JavaScript library for building UIs. It ...

  2. BZOJ 2005 [Noi2010]能量採集 (容斥)

    [Noi2010]能量採集 Time Limit: 10 Sec  Memory Limit: 552 MB Submit: 2324  Solved: 1387 [id=2005"> ...

  3. 跟我学设计模式视频教程——适配器模式,适配器模式VS装饰模式

    课程视频 适配器模式 适配器模式VS装饰模式 唠嗑 课程笔记 课程笔记 课程代码 课程代码 新课程火热报名中 课程介绍

  4. 小记 SqlHelper

    using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Web;u ...

  5. Hibernate中session回话的get方法和load方法的区别

    1.报错方式不同: 前提:获取的数据不存在 get方法会报异常:空指针异常 load方法会报异常:对象为找到异常,给定值没有行存在. 2.load方法 这种方式总是会返回一个代理而不是真正得去查询数据 ...

  6. Testbench代码设计技巧

    Testbench代码设计技巧 " There are many ways " to code a test case, it all depens on the creativi ...

  7. 英特尔深度学习框架BigDL——a distributed deep learning library for Apache Spark

    BigDL: Distributed Deep Learning on Apache Spark What is BigDL? BigDL is a distributed deep learning ...

  8. [poj3974] Palindrome 解题报告 (hash\manacher)

    题目链接:http://poj.org/problem?id=3974 题目: 多组询问,每组给出一个字符串,求该字符串最长回文串的长度 数据范围支持$O(nlog n)$ 解法一: 二分+hash ...

  9. Spring mvc <mvc:resources ***/> 作用

    <!-- 配置静态资源,直接映射到对应的文件夹,不被DispatcherServlet处理,3.04新增功能,需要重新设置spring-mvc-3.0.xsd --> 如在页面需要导入其它 ...

  10. Adobe ZXPInstaller 报错 Installation failed because of a file operation error.

    1. Drag a ZXP file or click here to select a file. 拖放一个 zxp 文件或点击打开选择一个 zxp 文件来安装: 2. Installation f ...