博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转载]C++之路起航——标准模板库(deque)
阅读量:6096 次
发布时间:2019-06-20

本文共 2331 字,大约阅读时间需要 7 分钟。

转自:https://www.cnblogs.com/grhyxzc/p/5074061.html

 

 deque(双端队列):

    需要包括头文件<deque>;

    定义:

         deque<数据类型> 变量名;

    Eg:

        deque<int> que;//定义了一个整型的双端队列;

   基本操作(红色标识为常用操作):

       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中的所有元素。
     代码解释:
           

#include<iostream>

#include<cstdio>
#include<deque>

using namespace std;

int main()

{
deque <int> que;
que.push_back(1);
que.push_back(2);
que.push_back(3); 
cout<<"基本操作:"<<endl; 
cout<<"队列遍历:"<<endl;
deque<int>::iterator ator; 
for (ator=que.begin();ator!=que.end();ator++)
cout<<*ator<<endl;
int a;
cout<<"队首插入元素:";
cin>>a;
que.push_front(a);
cout<<"队列遍历:"<<endl;
for (ator=que.begin();ator!=que.end();ator++)
cout<<*ator<<endl;
cout<<"队尾插入元素:";
cin>>a;
que.push_back(a);
cout<<"队列遍历:"<<endl;
for (ator=que.begin();ator!=que.end();ator++)
cout<<*ator<<endl; 
cout<<"中间插入元素:";
cin>>a; 
que.insert(que.begin()+1/*迭代器位置,根据要求更改*/,1,a);//第一个位置为迭代器位置,该程序插入的为在首位置之后、第一个元素之前插入。元素标号从第0个开始。 
cout<<"队列遍历:"<<endl;
for (ator=que.begin();ator!=que.end();ator++)
cout<<*ator<<endl; 
cout<<"删除队首元素:"<<endl;
que.pop_front();
cout<<"队列遍历:"<<endl; 
for (ator=que.begin();ator!=que.end();ator++)
cout<<*ator<<endl; 
cout<<"删除队尾元素:"<<endl; 
que.pop_back();
cout<<"队列遍历:"<<endl; 
for (ator=que.begin();ator!=que.end();ator++)
cout<<*ator<<endl; 
cout<<"队列元素个数:"<<que.size()<<endl;
cout<<"队列清0:"<<endl;
que.clear();
cout<<"队列元素个数:"<<que.size()<<endl;
return 0;
}

转载于:https://www.cnblogs.com/workingdiary/p/10474650.html

你可能感兴趣的文章
前端学习之正则表达式
查看>>
配置 RAILS FOR JRUBY1.7.4
查看>>
AndroidStudio中导入SlidingMenu报错解决方案
查看>>
http://www.blogjava.net/pdw2009/archive/2007/10/08/151180.html
查看>>
hadoop(6)---mapred-site.xml 详解以及常用配置。
查看>>
修改GRUB2背景图片
查看>>
Ajax异步
查看>>
好记性不如烂笔杆-android学习笔记<十六> switcher和gallery
查看>>
JAVA GC
查看>>
codeforce 599B Spongebob and Joke
查看>>
3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)
查看>>
9、Dubbo-配置(4)
查看>>
前端第七天
查看>>
BZOJ 2190[SDOI2008]仪仗队
查看>>
图解SSH原理及两种登录方法
查看>>
[转载] 七龙珠第一部——第058话 魔境圣地
查看>>
【总结整理】JQuery基础学习---样式篇
查看>>
查询个人站点的文章、分类和标签查询
查看>>
基础知识:数字、字符串、列表 的类型及内置方法
查看>>
JSP的隐式对象
查看>>