deque(2)
---雨竹清风
一、 deque创建
1) 创建一个空的deque
deque<int> d;
2) 创建一个包含n个元素的deque,其默认值为0
deque<int> d1(10);//创建一个含有10个元素的双端队列,其默认值为0
3) 创建一个包含有n个元素的deque,其值初始化为5.2
deque<int> d2(10,5.2);//创建一个含有10个元素的双端队列,其值为5.2
4) 用deque的一个对象去初始化另一个对象
deque<int> d3(d2);//使用一个对象d2,来初始化另一个对象d3
5) 将迭代器区间所指的元素拷贝到deque中
int array[] = {1,5,6,8};
deque<int> d4(array, array+3);
二、 deque初始化赋值
使用push_back()函数进行初始化。
deque<int> d;
d.push_back(1);
d.push_back(2);
三、 遍历
正向遍历:使用[],或者*来遍历。
int array[] = {1,5,6,8};
deque<int> d4(array, array+3);
for (int i = 0; i < d4.size(); ++i)
{
cout<<d4[i]<<" ";
}
使用迭代器iterator
deque<int>::iterator it = d4.begin();
for (it; it!= d4.end(); ++it)
{
cout<<*it<<endl;
}
反向遍历:使用迭代器reverse_iterator
deque<int>::reverse_iterator itt;
for (itt = d4.rbegin(); itt != d4.rend(); ++itt)
{
cout<<*itt<<endl;
}
四、 插入
不仅仅可以在队头、队尾插入,而且可以在任何位置插入。
在队头插入数据使用的是push_front(),在队尾插入数据使用的是push_back(),在任意位置插入使用的是insert()函数。
d4.insert(d4.begin()+2,7);
五、 删除
删除队头元素pop_front(),删除队尾元素pop_back(),删除pos所指的元素erase(pos),删除迭代器区间所指的所有元素pop_erase(first,last),清除所有元素clear()。
d4.pop_front();
d4.pop_back();
d4.clear();
六、 交换
与vector相似,swap()函数实现两个deque中的数值的交换。