1 初始化
// 头文件
#include <deque>
// 1.指定大小不带初值的初始化
deque<int> q;
// 2.直观的初始化
deque<int> q{1,2,3,4};
// 3.批量初始化
int size=10;
deque<int> q(size,1); // 容器q大小为10,初始值1
// 4.通过容器初始化
// 其他类似可做参考
vector<int> vec{1,2,3,4};
deque<int> q(vec.begin(),vec.end()); // q变为{1,2,3,4}
2 常用方法
2.1 增
2.1.1 assign()
// 假设容器vec为{4,3,2,1}
deque<int> q;
q.assign(vec.begin(),vec.end()); // q变为{4,3,2,1}
deque<int> q2;
q2.assign(10,1); // q2大小为10,初值为1,即{1,1,1,1,1,1,1,1,1,1}
2.1.2 push_back
deque<int> q;
q.push_back(1); // q变为{1}
q.push_back(2)l // q变为{1,2}
2.1.3 push_front
deque<int> q;
q.push_front(1); // q变为{1}
q.push_front(2); // q变为{2,1}
2.1.4 insert()
// 假设双端队列p为{4,3,2,1}
p.insert(p.begin()+1,-9); // 在索引1的位置插入一个元素,其值为-9
// p变为{4,-9,5,5,3,2,1}
//-----------------------------------------------------------------
// 假设双端队列p2为{4,3,2,1}
p2.insert(p2.begin()+1,2,5); // 在索引1的位置插入2个元素,其值为5
// 容器p2变为{4,5,5,3,2,1}
//-----------------------------------------------------------------
// 假设双端队列p3为{4,3,2,1},b为{6,7,8,9}
p3.insert(p3.begin()+1,b.begin()+1,b.begin()+3);
// 双端队列p3变为{4,7,8,3,2,1}
2.2 删
2.2.1 pop_back()
// 假设双端队列q为{1,2,3,4}
q.pop_back(); // 删除最后一个元素,变为{1,2,3}
2.2.2 pop_front()
// 假设双端队列q为{1,2,3,4}
q.pop_front(); // 删除第一个元素,变为{2,3,4}
2.2.3 erase()
// 假设双端队列p为{4,3,2,1}
p.erase(p.begin()+1); // 删除索引为1的元素,p变为{4,2,1}
//-------------------------------------------------------------------------
// 假设双端队列p2为{4,3,2,1}
p2.erase(p2.begin()+n,p2.begin()+m); // 从第n个元素开始,删除(m-n)个元素
2.2.4 clear()
// 假设双端队列p为{4,3,2,1}
p.clear(); //清空p中的所有元素
2.3 改
2.3.1 resize()
// 假设双端队列p为{4,3,2,1}
p.resize(10); // 将双端队列p大小调至10,会补充元素,值随机(一般为0)
// 假设双端队列p2为{4,3,2,1}
p2.resize(3); // 将双端队列p2大小调至3,会删除元素,值随机(一般从末尾删除)
// 假设双端队列p3为{4,3,2,1}
p3.resize(10,2); // 将双端队列p3大小调至10,需要补充元素,值指定为2
2.3.2 swap()
// 假设双端队列p为{4,3,2,1}
// 假设双端队列p2为{5,6,7,8,9}
p.swap(p2); // p变为{5,6,7,8,9},p2变为{4,3,2,1}
2.3.3 reverse()
// 假设双端队列p为{4,3,2,1}
reverse(p.begin(),p.end()); // p变为{1,2,3,4}
2.4 查
2.4.1 find()
// 假设双端队列p为{4,3,4,2,1,0}
// 返回元素ele在p中的第一个索引,ele为4时返回index=0
// 若未找到指定的元素,返回下标为p.size()
int index=find(p.begin(),p.end(),ele)-p.begin();
// 返回元素ele在p中的第一个索引(从右往左看,索引也是从右开始),ele为4时返回index=3
// 若未找到指定的元素,返回下标为p.size()
int index2=find(p.rbegin(),p.rend(),ele)-p.rbegin();
2.4.2 front()和back()
// 假设双端队列p为{4,3,2,1}
p.front(); //返回第一个元素4
p.back(); // 返回最后一个元素1
2.4.3 empty()
// 假设双端队列p为{4,3,2,1}
p.empty(); //判断p是否为空,空则返回true;不空则返回false
2.4.4 size()
// 假设双端队列p为{4,3,2,1,0}
p.size() // 返回容器大小,值为5
3 其他方法
持续更新中,喜欢的话点个赞~(其他方法待更新)