STL - Deque基础

Deque 基础:

概述:

deque是“double-ended queue”的缩写,和vector一样都是STL的容器,唯一不同的是:deque是双端数组,而vector是单端的。
image

1、deque的定义:

//包含头文件
#include<deque>
//无参构造
deque <int> deqInt;            //存放int的deque容器。
deque <float> deqFloat;         //存放float的deque容器。
deque <student> deqStu;        //存放student的deque容器。
//有参构造
deque(beg,end);    //构造函数将[beg, end)区间中的元素拷贝给本身。
deque(n,elem);   //构造函数将n个elem拷贝给本身。
deque(const deque  &deq);  //拷贝构造函数。

2、deque头部和末尾的添加移除操作:

· 1.deque.push_back(element); //容器尾部添加一个数据
· 2.deque.push_front(element); //容器头部插入一个数据
· 3.deque.pop_back();         //删除容器最后一个数据
· 4.deque.pop_front();     //删除容器第一个数据

3、deque的数据存取:

· 使用下标操作 deqIntA[0] = 100;
· 第二  使用at 方法 如: deqIntA.at(2) = 100;
· 第三  接口返回的引用 deqIntA.front() 和 deqIntA.back()  
· 注意:第一和第二种方式必须注意越界

4、deque与迭代器:

1.deque.begin();  //返回容器中第一个元素的迭代器。
2.deque.end();   //返回容器中最后一个元素之后的迭代器。
3.deque.rbegin();  //返回容器中倒数第一个元素的迭代器。
4.deque.rend();   //返回容器中倒数最后一个元素之后的迭代器。
5.deque.cbegin();  //返回容器中第一个元素的常量迭代器。
6.deque.cend();   //返回容器中最后一个元素之后的常量迭代器。

5、deque的赋值

1.deque.assign(beg,end);    //将[beg, end)区间中的数据拷贝赋值给本身。注意该区间是左闭右开的区间。
2.deque.assign(n,elem);  //将n个elem拷贝赋值给本身。
3.deque& operator=(const deque &deq); //重载等号操作符
4.deque.swap(deq);  // 将deque与本身的元素互换

6、deque的大小

1.deque.size();     //返回容器中元素的个数
2.deque.empty();     //判断容器是否为空
3.deque.resize(num);    //重新指定容器的长度为num,若容器变长,则以默认值0填充新位置。如果容器变短,则末尾超出容器>长度的元素被删除。
4.deque.resize(num, elem);  //重新指定容器的长度为num,若容器变长,则以elem值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。

7、deque的插入

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

8、deque的删除

1.deque.clear();      //移除容器的所有数据
2.deque.erase(beg,end); //删除[beg,end)区间的数据,返回下一个数据的位置。
3.deque.erase(pos);    //删除pos位置的数据,返回下一个数据的位置。
posted @ 2023-03-09 20:42  盧倫  阅读(53)  评论(0)    收藏  举报