STL - Deque基础
Deque 基础:
概述:
deque是“double-ended queue”的缩写,和vector一样都是STL的容器,唯一不同的是:deque是双端数组,而vector是单端的。
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位置的数据,返回下一个数据的位置。


浙公网安备 33010602011771号