3.deque容器
功能:双端数组,可以对头端进行插入和删除操作
与vector容器的区别:vector对头插和头删的效率极低
deque对头插和头删的效率比vector快
vector访问元素的速度比deque快
1)deque容器的构造
函数原型:
deque<T>deqT;//默认构造形式
deque<beg,end>;//将[beg,end)区间中的元素拷贝给本身
deque<n,elem>;//将n个elem拷贝给本身
deque<const deque &deq);//拷贝构造函数
2)deque的赋值操作
函数原型:
deque& operator=(const deque &deq)//重载等号赋值操作
assign(beg,end);//将[beg,end)区间的数据拷贝给本身
assign(n,elem);//将n个elem赋值给本身
3)deque大小操作
函数原型:
deque.empty()//判断容器是否为空
deque.size()//返回容器元素个数
deque.resize(num)//重新指定容器的长度为num,如果过长,则以默认值填充,如果过短,则删除超长部分
deque.resize(int num,elem)//重新指定容器的长度为num,如果过长,则以elem填充,如果过短,则删除超长部分
4)deque容器插入和删除
函数原型:
两端插入操作:
push_back(elem)//在容器尾部插入一个数据
push_front(elem)//在容器头部插入一个数据
pop_back()//删除容器最后一个数据
pop_front()//删除容器第一个数据
指定位置操作:
insert(pos ,elem)//在pos位置插入一个elem,返回新数据的位置
insert(pos ,elem)//在pos位置插入一个elem,无返回值
insert(pos ,beg,end)//在pos位置插入[beg,end)的数据,无返回值
clear();//清空容器内所有元素
erase(beg,end)//清空容器[beg,end)的数据,返回下一个数据的位置
erase(pos)//删除pos位置的数据,返回下一个数据的位置
5)deque数据的存取
at(int idx)//返回索引idx所指的数据
operator[idx]//返回索引idx所指的数据
front()//返回容器内第一个数据
beck()//返回容器内最后一个数据
6)deque排序
sort(iterator beg,iterator,end)//对区间beg到end的元素进行排序