STL常用容器用法之——Deque
来源:互联网 发布:php中使用url传递数组 编辑:程序博客网 时间:2024/05/17 13:14
Deque容器
deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的。
deque在接口上和vector非常相似,在许多操作的地方可以直接替换。
deque可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法)
deque头部和尾部添加或移除元素都非常快速。但是在中部安插元素或移除元素比较费时。
1、deque的添加移除获取元素操作
deque.push_back(elem); //在容器尾部添加一个数据
deque.push_front(elem); //在容器头部插入一个数据
deque.pop_back(); //删除容器最后一个数据
deque.pop_front(); //删除容器第一个数据
例:
deque<int> d1;
d1.push_back(1);
d1.push_back(3);
d1.push_back(5);
d1.push_front(-11);
d1.push_front(-33);
d1.push_front(-55);// d1 {-55 -33 -11 1 3 5}
deque.at(idx); //返回索引idx所指的数据,如果idx越界,抛出out_of_range。
deque[idx]; //返回索引idx所指的数据,如果idx越界,不抛出异常,直接出错。
deque.front(); //返回第一个数据。
deque.back(); //返回最后一个数据
//查找 -33 在数组下标的值
deque<int>::iterator it = find(d1.begin(), d1.end(), -33 ); // #include "algorithm"
if (it != d1.end())
{
cout << "-33数组下标是" << distance(d1.begin(), it) <<endl; //
}
else
{
cout << "没有找到值为-33的元素" << endl;
}
2、deque与迭代器
deque.begin(); //返回容器中第一个元素的迭代器。
deque.end(); //返回容器中最后一个元素之后的迭代器。
deque.rbegin(); //返回容器中倒数第一个元素的迭代器。
deque.rend(); //返回容器中倒数最后一个元素之后的迭代器。
3、deque对象的带参数构造
deque(beg,end); //构造函数将[beg,end)区间中的元素拷贝给本身。注意该区间是左闭右开的区间。
deque(n,elem); //构造函数将n个elem拷贝给本身。
deque(const deque &deq); //拷贝构造函数。
deque<int> deqIntA;
deqIntA.push_back(1);
deqIntA.push_back(3);
deqIntA.push_back(5);
deqIntA.push_back(7);
deqIntA.push_back(9);
deque<int>deqIntB(deqIntA.begin(),deqIntA.end()); //13 5 7 9
deque<int>deqIntC(5,8); //88 8 8 8
deque<int>deqIntD(deqIntA); //13 5 7 9
- STL常用容器用法之——Deque
- stl之序列容器——deque
- STL之deque容器用法详解
- STL常用容器总结——deque双向队列
- STL容器之deque
- STL容器之 deque
- STL容器之deque
- STL容器之deque
- STL容器之deque
- STL容器之Deque
- STL容器之deque
- STL之deque容器
- STL容器之deque
- STL之Deque容器
- STL学习系列之四——deque序列容器
- STL源码剖析——序列容器之deque
- STL常用容器用法之——vector
- STL常用容器用法之——stack
- 设计模式的征途—20.备忘录(Memento)模式
- SDUT2781二分练习
- windows下PHP + Nginx curl访问本地超时
- 数据库隔离级别
- NOIP 2016
- STL常用容器用法之——Deque
- Qt应用程序的发布
- 步进电机的使用一
- Vector容器
- MOOC清华《面向对象程序设计》第4章:虚函数实验
- ubuntu14.04下部署smokeping监控软件
- centos7 部署全过程记录
- C/C++连接mysql以及CURD
- 2365 Rope