它与vector的区别在于头尾两端插入和删除元素。
成员函数
- deque<typename>de 创建一个空的deque
- deque<typename>de1(de) 复制de进入de1
- deque<typename>de(n) 创建一个含有n 个元素的de
- de.assign(d1.begin(),de.end()) 将de1的区间赋值给de
- de.assign(n,elem) 将n个elem 赋值给de
- de.at(id) 返回 下标为id的元素
- de[id] 返回下标为id的元素
- de.front() 返回第一个数据
- de.back返回最后一个数据
- de.begin()返回第一个数据的迭代器
- de.end() 返回最后一个数据的迭代器
- de.push_back(x) 在de 尾部加入x
- de.push_front(x) 在de头部加入x
- de.pop_back() 删除de最后一个元素
- de.pop_front 删除de 头部元素
- de.insert(id ,x) 在下标为id 的位置插入入x
- de.insert(id,n,x)在下标为id的位置插入n 个 x
- de.erase(id ) 删除下标为id的元素
- de.empty() de 是否为空
- de.resize(num)重新指定de的长度
- de.size() 返回de 中的元素的个数
- de.swap(de1)交换容器里的元素
#include<iostream>
#include<deque>
using namespace std;
int main()
{
deque<int>de;//创建空de
deque<double>de1(10); //创建有10个数据的de1
deque<float>de2(2, 23);//创建有2个23的deque
deque<int>v1 = { 1,2,3,4,5,6,7,8,9 };
deque<int>v2;
v2.assign(v1.begin(), v1.end());
for (auto a : v2)
{
cout << a;
}
cout << endl;
cout << v2.at(0) << endl;
cout << v2[0] << endl;
cout << v2.front() << endl;
cout << v2.back() << endl;
v2.push_back(1000);
v2.push_front(999);
for (auto a : v2)
{
cout << a;
}
cout << endl;
v2.insert(v2.begin()+3, 7800);
v2.pop_back();
v2.pop_front();
v2.erase(v2.begin() + 3);
for (auto a : v2)
{
cout << a;
}
cout << endl;
return 0;
}