deque容器 使用deque
。即双端队列;特点为front和back都可以插入,也都可以删除;
只需要看懂数据结构中的双端队列,使用就根据特点即可;
代码
#include<iostream>
#include<deque>
using namespace std;
#include<algorithm>
//iterator 普通迭代器 reversed_iteraotr 反向迭代器 const_iteraotr 只读迭代器
void printDeque(const deque<int> &d)
{
for(deque<int>::const_iterator it = d.begin();it!=d.end();++it)
{
cout<<*it<<" ";
}
cout<<endl;
}
void test01()
{
deque<int> d;
d.push_back(10);
d.push_back(20);
d.push_back(30);
d.push_front(40);
d.push_front(50);
d.push_front(60);
printDeque(d);
deque<int> d2(d.begin(),d.end());//根据迭代器区间构造deque
d2.push_front(1000);
d.swap(d2);
printDeque(d);
d.pop_front();
d.pop_back();
printDeque(d);
d.insert(d.begin(),d2.begin(),d2.end());//根据迭代器区间插入数据
printDeque(d);
}
bool myCompare(int val1,int val2)
{
return val1 > val2; //给sort一个为真的案例,他就按这个顺序调整
}
void test02()
{
deque<int> d1;
d1.push_back(10);
d1.push_back(90);
d1.push_back(70);
d1.push_back(60);
d1.push_back(90);
d1.push_back(80);
d1.push_back(30);
d1.push_back(40);
sort(d1.begin(),d1.end());//从小到大排序,参数是迭代器类型
printDeque(d1);
sort(d1.begin(),d1.end(),myCompare);//从大到小
printDeque(d1);
}
int main()
{
//test01();
test02();
return 0;
}
来源:CSDN
作者:YanWenCheng_
链接:https://blog.csdn.net/YanWenCheng_/article/details/104077050