deque双端队列容器
//deque双端队列容器
//deque双端队列容器与vector一样,采用线性表顺序存储结构,但与vector不同的是,
//deque采用的分块线性存储结构来存储数据,每块的大小一般为512字节,成为一个deque块
//所有deque块使用一个Map块进行管理,每个Map数据项纪录各个deque块的首地址,这样一来,deque的
//头部和尾部都可插入和删除元素,而不需移动其他元素 。使用push_back()方法在尾部插入元素,会扩张队列
//而使用push_front()方法在首部插入元素和使用insert()方法在中部插入元素,只是将原位置上的元素值覆盖,不会增加新元素 #include<deque>
#include<iostream>
using namespace std;
int main()
{
//创建没有任何元素的deque对象
deque<int> d;
//创建具有n个元素的deque对象
deque<int> d1();
//创建具有n个元素的deque对象,并赋初值
deque<int> d2(,8.5);
d.push_back();
d.push_back();
d.push_back();
cout<<d[]<<" "<<d[]<<" "<<d[]<<endl;
//从头部插入元素不会增加新的元素,只将原有的元素覆盖
d.push_front();
d.push_front();
cout<<d[]<<" "<<d[]<<" "<<d[]<<endl;
//从中间插入元素,不会增加新元素,只将原有的元素覆盖
d.insert(d.begin()+,);
cout<<d[]<<" "<<d[]<<" "<<d[]<<endl;
//前向遍历
for(int i=;i<d.size();i++)
{
cout<<d[i]<<" ";
}
cout<<endl;
//以前向迭代器的方式遍历
deque<int>::iterator it;
for(it=d.begin();it!=d.end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
deque<int> d3;
d3.push_back();
d3.push_back();
d3.push_back();
d3.push_back();
d3.push_back();
d3.pop_front();
d3.pop_front();
deque<int>::iterator it1;
for(it1=d3.begin();it1!=d3.end();it1++)
{
cout<<*it1<<" ";
}
cout<<endl;
//从尾部删除元素
d3.pop_back();
for(it1=d3.begin();it1!=d3.end();it1++)
{
cout<<*it1<<" ";
}
cout<<endl;
d3.erase(d3.begin()+);
for(it1=d3.begin();it1!=d3.end();it1++)
{
cout<<*it1<<" ";
}
cout<<endl;
d3.clear();
cout<<d3.size()<<endl;
return ;
}
deque双端队列容器的更多相关文章
- stl之deque双端队列容器
deque与vector很相似,不仅能够在尾部插入和删除元素,还能够在头部插入和删除. 只是当考虑到容器元素的内存分配策略和操作性能时.deque相对vector较为有优势. 头文件 #include ...
- C++STL之双端队列容器
C++STL之双端队列容器 deque双端队列容器与vector很类似,采用线性表顺序存储结构.但与vector区别,deque采用分块的线性存储结构来存储数据,每块的大小一般为512B,将之称为de ...
- STL容器:deque双端队列学习
所谓deque,是"double-ended queue"的缩写; 它是一种动态数组形式,可以向两端发展,在尾部和头部插入元素非常迅速; 在中间插入元素比较费时,因为需要移动其它元 ...
- 8、泛型程序设计与c++标准模板库2.3双端队列容器
双端队列容器是一种放松了访问权限的队列.除了从队列的首部和尾部访问元素外,标准的双端队列也支持通过使用下标操作符"[]"进行直接访问. 它提供了直接访问和顺序访问方法.其头文件为& ...
- deque双端队列笔记
clear()clear()clear():清空队列 pushpushpush_back()back()back():从尾部插入一个元素. pushpushpush_front()front()fro ...
- Java 集合深入理解(10):Deque 双端队列
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 什么是 Deque Deque 是 Double ended queue (双端队列) 的缩写,读音和 deck 一样,蛋 ...
- c++ deque 双端队列
双端队列: 函数 描述 c.assign(beg,end)c.assign(n,elem) 将[beg; end)区间中的数据赋值给c.将n个elem的拷贝赋值给c. c.at(idx) 传回索引 ...
- 算法-deque双端队列
Python的deque模块,它是collections库的一部分.deque实现了双端队列,意味着你可以从队列的两端加入和删除元素 1.基本介绍 # 实例化一个deque对象d = deque()d ...
- STL标准库-容器-deque 双端队列
头文件: #include<deque> 常用操作: https://www.cnblogs.com/LearningTheLoad/p/7450948.html
随机推荐
- C#复习笔记(5)--C#5:简化的异步编程(异步编程的基础知识)
异步编程的基础知识 C#5推出的async和await关键字使异步编程从表面上来说变得简单了许多,我们只需要了解不多的知识就可以编写出有效的异步代码. 在介绍async和await之前,先介绍一些基础 ...
- 3 Asking for more information
1 Could you tell me more about your idea? 2 Could I hear more about your idea? 3 Could you expain yo ...
- hihoCoder1033 交错和 数位DP
题目:交错和 链接:http://hihocoder.com/problemset/problem/1033# 题意:对于一个十进制整数x,令a0.a1.a2.....an是x从高位到低位的数位,定义 ...
- VS code常用快捷方式—转载
http://www.cnblogs.com/weihe-xunwu/p/6687000.html
- socket基础编程-1
server端和client端 1.server端: import socket server=socket.socket() server.bind(('localhost',8080)) serv ...
- mysql参数优化记录
服务器参数16G内存,4核CPUvim /etc/my.cnf 原: back_log=170 max_connections=600 max_user_connections=0 thread_co ...
- 集合之ArrayList(含JDK1.8源码分析)
一.ArrayList的数据结构 ArrayList底层的数据结构就是数组,数组元素类型为Object类型,即可以存放所有类型数据.我们对ArrayList类的实例的所有的操作(增删改查等),其底层都 ...
- Ajax之Jquery封装使用举例2(Json和JsonArray处理)
本例主要使用ajax进行异步数据请求,并针对返回数据为json和jsonarray类型的数据处理. 本例中只有前端的代码,后端代码不是本文重点,故省略. 后端接口返回数据为: Json: {" ...
- 模型的CURD操作
class Index { public function index() { return '<h3>欢迎来到PHP中文网</h3>'; } public function ...
- luogu1503
P1503 鬼子进村 题目背景 小卡正在新家的客厅中看电视.电视里正在播放放了千八百次依旧重播的<亮剑>,剧中李云龙带领的独立团在一个县城遇到了一个鬼子小队,于是独立团与鬼子展开游击战. ...