文章目录
Deque容器使用简要总结
Deque容器的基本概念
双端数组,可以对头端进行插入删除操作(双端队列)
头文件为deque
deque与vector的区别
- vector对于头部的插入与删除效率极低
- vector访问元素的速度要比deque快,这与内部实现有关系
Deque构造函数
函数原型
deque<T> deq; //默认构造
deque(beg, end); //左闭右开的拷贝元素
deque(n, elem); //拷贝n个elem
deque(const deque &deq);//拷贝构造
示例
deque <int> dq;
deque <int> dq1(dq.begin(), dq.end());
deque <int> dq2(5, 2);
deque <int> dq3(dq);
Deque赋值操作
函数原型
deque& operator=(const deque &dq); //重载等号
assign(beg, end); //左闭右开的赋值
assign(n, elem); //n个elem拷贝赋值
示例
deque<int> dq;
for (int i = 0; i < 10; i++)
{
dq.push_back(i);
}
deque<int> dq1 = dq;
deque<int> dq2;
dq2.assign(dq.begin(), dq.end());
deque<int> dq3;
dq3.assign(5, 2);
Deque大小操作
函数原型
deque.empty(); //容器判空,空返回1,非空返回0
deque.size(); //返回容器中元素的个数
deque.resize(num); //改变长度,若变长则以默认值填充
//若变短,则从尾部开始删
deque.resize(num, elem); //改变长度,若变长则用elem填充
//若变短,则从尾部开始删
Deque插入和删除
函数原型
push_back(elem); //尾插
push_front(elem); //头插
pop_back(); //尾删
pop_front();
insert(pos, elem); //pos位置插入elem,返回pos
insert(pos, n, elem); //pos位置插入n个elem,无返回值
insert(pos, beg, end); //左闭右开插入,无返回值
clear(); //清空
erase(beg, end); //左闭右开删除,返回下一个元素位置
erase(pos); //制定位置删除,返回下一个元素位置
注:这里的beg,end均为迭代器类型
Deque 数据存取
函数原型
at(int idx); //返回索引数据
operator[];
front(); //头
back(); //尾
Deque排序
算法
sort(iterator beg,iterator end); //左闭右开的排序
来自于头文件algorithm,默认升序
对于支持随机访问的迭代器,都可以使用sort算法对其进行排序