目录
vector
set
queue
priority_queue(堆)优先队列
大根堆
小根堆
map unordered_map
vector
vector<int> heap;//一维数组
for(int i=1;i<=10;i++){
heap.push_back(i);
}
heap.push_back();//元素插入尾部
heap.pop_back();//弹出尾部元素
heap.empty();// 判断是否为空
cout<<heap.size()<<endl;//10 返回数组长度
heap.erase()//{删除单个元素下标 ||删除区间 [i,j) }
for(auto it: heap){//1 2 3 4 5 6 7 8 9 10 遍历数组
cout<<it<<" ";
}
cout<<endl<<heap.front()<<" "<<heap.back();
set
自带排序从小到大
set<int> heap;
for(int i=1;i<=10;i++){
heap.insert(i);
}
// heap.insert();//元素插入尾部
// heap.clear();//元素
// heap.find();
//heap.erase()//{删除单个元素值或者find()函数返回的迭代器也行 ||删除区间 [i,j(heap.end())] }
cout<<heap.size()<<endl;//10 返回长度
for(auto it: heap){//1 2 3 4 5 6 7 8 9 10 遍历
cout<<it<<" ";
}
cout<<endl<<*heap.find(7);
//7 因为find()函数返回的是指针,所以加*是取值
queue
queue<int> heap;
for(int i=10;i>=1;i--){
heap.push(i);//尾部插入元素
}
// heap.pop();//弹出队头元素
cout<<heap.front()<<endl;//返回队头元素
cout<<heap.back()<<endl;//返回队尾元素
cout<<heap.size()<<endl;//10 返回长度
while(heap.size()){//遍历
cout<<heap.front()<<" ";
heap.pop();
}
priority_queue(堆)优先队列
大根堆
默认大根堆
priority_queue<int> heap;
for(int i=10;i>=1;i--){
heap.push(i);
}
// heap.pop();
cout<<heap.top()<<endl;
cout<<heap.size()<<endl;//10 返回长度
while(heap.size()){
cout<<heap.top()<<" ";
heap.pop();
}
小根堆
priority_queue<int,vector<int>,greater<int>> heap;
for(int i=10;i>=1;i--){
heap.push(i);
}
// heap.pop();
cout<<heap.top()<<endl;
cout<<heap.size()<<endl;//10 返回长度
while(heap.size()){
cout<<heap.top()<<" ";
heap.pop();
}
map unordered_map
map<int,int> heap;
unordered_map<int,int> heap;
for(int i=10;i>=1;i--){
heap.insert({i,i+1});
}
cout<<heap.size()<<endl;//10 返回长度
for(auto it: heap){//遍历
cout<<it.first<<" "<<it.second<<endl;
}