std::deque

Posted osbreak

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了std::deque相关的知识,希望对你有一定的参考价值。

Deque 容器
deque容器是C++标准模版库(STL,Standard Template Library)中的部分内容。
deque容器类与vector类似,支持随机访问和快速插入删除,它在容器中某一位置上的操作所花费的是线性时间。
与vector不同的是,deque还支持从开始端插入数据:push_front()。
使用deque容器之前必须加上<deque>头文件:#include<deuqe>;
deque属于std命名域的内容,因此需要通过命名限定:using std::deque;
也可以直接使用全局的命名空间方式:using namespace std;

 

 

构造函数

技术分享图片
  deque<Elem> c 创建一个空的deque
  deque<Elem> c1(c2) 复制一个deque。
  deque<Elem> c(n) 创建一个deque,含有n个数据,数据均已缺省构造产生。
  deque<Elem> c(n, elem) 创建一个含有n个elem拷贝的deque。
  deque<Elem> c(beg,end) 创建一个以[beg;end)区间的deque。
  ~deque<Elem>() 销毁所有数据,释放内存。
 
View Code

 

成员函数

技术分享图片
c.begin()返回指向第一个元素的迭代器
c.end()返回指向最后一个元素下一个位置的迭代器
c.rbegin()返回指向反向队列的第一个元素的迭代器(即原队列的最后一个元素)
c.rend()返回指向反向队列的最后一个元素的下一个位置(即原队列的第一个元素的前一个位置)
c.assign(n,num)将n个num拷贝复制到容器c
c.assign(beg,end)将[beg,end)区间的数据拷贝复制到容器c
c.at(pos)返回索引为pos的位置的元素,会执行边界检查,如果越界抛出out_of_range异常
c.operator[]下标运算符重载
c.empty()判断c容器是否为空
c.front()返回c容器的第一个元素
 
c.back()返回c容器的最后一个元素
c.size()返回c容器中实际拥有的元素个数
c.max_size()返回c容器可能存放元素的最大数量
c.clear()清除c容器中拥有的所有元素
c.insert(pos,num)在pos位置插入元素num
c.insert(pos,n,num)在pos位置插入n个元素num
 
c.insert(pos,beg,end)在pos位置插入区间为[beg,end)的元素
c.erase(pos)删除pos位置的元素c.erase(beg,end)删除区间为[beg,end)的元素
c.erase(beg,end)删除区间为[beg,end)之间的元素
c.push_back(num)在末尾位置插入元素
c.pop_back()删除末尾位置的元素
c.push_front(num)在开头位置插入元素
c.pop_front()删除开头位置的元素
c.resize(num)从新定义容器的大小
c1.swap(c2)交换容器c1,c2;
 
swap(c1,c2)同上。
View Code

 

重载运算符

技术分享图片
operator=赋值运算符重载
operator==
operator!=
operator<
operator<=
operator>
operator>=
View Code

 

 

 

以上是关于std::deque的主要内容,如果未能解决你的问题,请参考以下文章

将对象插入不允许复制构造函数的 std::deque

deque是一种啥数据类型

std::deque双端队列介绍

C++中,为啥函数参数不够也可以调用?而且函数模板定义中没有提供默认值。

如何创建可调整大小和固定大小容器的变体

序列容器-元素只能按顺序访问