C++高级_Deque容器_STL标准模板库

Deque容器

deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,二vector是单端的。

deque在接口上合vector非常相似,在许多操作的地方可以直接替换。

deque可以随机存取元素(支持索引值直接存取,用[]操作符或 at() 方法)

deque头部和尾部添加或者移除元素都非常快速,但是在中部安插元素或移除元素都比较耗时。

使用时需要添加头文件:#include <deque>

deque容器的构造函数:

deque<T> deqT;        //默认构造形式
deque <int> deqInt;   //一个存放int的deque容器
deque <float> deqFloat //一个存放 float的deque容器。
/*尖括号内还可以设置指针类型或者自定义类型*/

deque(beg,end);   //构造函数将[beg,end]区间中得元素拷贝给本身。注意该区间是左闭右开的区间。
deque(n,elem);   //构造函数将n 个 elem拷贝给本身
deque(const deque &deq);   //拷贝构造函数

deque的赋值:

deque.assign(beg,end);    //将[beg,end]区间中的数据拷贝赋值给本身(注意该区间是左闭右开的区间)

deque.assign(n,elem);     //将n个elem拷贝赋值给本身

deque& operator= (const deque &deq);  //重载等号操作符
deque.swap(deq);        //将deq与本身的元素互换

deque的大小:

deque.size();    //返回容器中元素的个数
deque.empyt();   //判断容器是否为空
deque.resize(num);  //重新指定容器的长度为 num,如果容器边长,则已默认值填充新的位置,若干容器变短,则将末尾超出的元素删除
deque.resize(num,elem);  //重新指定容器的长度,若容器变长,则以elem值填充新的位置,若容器变短,则将末尾超出的元素删除

deque的末尾添加移除操作:

deque.push_back(elem);   //在容器尾部添加一个数据
deque.push_front(elem);  //在容器头部插入一个数据
deque.pop_back();        //删除容器最后一个数据
deque.pop_front();       //删除容器的第一个数据

deque的数据存取:

deque.at(idx);      //返回索引idx所指的数据,如果idx越界,抛出out_of_range.
deque[idx];         //返回索引idx所指的数据,如果idx越界,不抛出异常,直接出错
deque.front();      //返回第一个数据
deque.back();       //返回最后一个数据

deque的插入:

deque.insert(pos,elem);     //在pos位置插入一个elem元素的拷贝,返回新数据的位置
deque.insert(pos,n,elem);   //在pos位置插入n个elem数据,无返回值
deque.insert(pos,beg,end);  //在pos位置插入 [beg,end] 区间的数据,无返回值。

deque的删除:

deque.clear();          //移除容器的所有数据
deque.erase(beg,end);   //删除[beg,end] 区间的数据,返回下一个数据的位置
deque.erase(pos);       //删除pos位置的数据,返回下一个数据的位置。

 

暂无评论

发表评论