1. sort
1.1 迭代器的分类
1.2 算法库里的sort
list 不可以用算法库里的 sort 函数(该函数底层逻辑是快排), 在C++中使用sort()函数需要使用#include< algorithm >头文件。algorithm意为"算法",是C++的标准模版库(STL)中最重要的头文件之一。
算法库里的sort函数使用方法如下:
...
vector<int> vec;
vec.push_back(3);
vec.push_back(2);
vec.push_back(1);
// 升序
sort(vec.begin(),vec.end());
//降序
1.3 list 库中的sort
list 库重的sort是用归并写的,适用于list.
list 库重的sort函数使用方法如下:
...
list<int> lt;
lt.push_back(3);
lt.push_back(2);
lt.push_back(1);
//升序
lt.sort();
//降序
//greater<int> gt;
//lt.sort(gt); 即:
lt.sort(greater<int>());
2. priority_queue
- 优先级队列默认使用vector作为其底层存储数据的容器
- 在vector上又使用了堆算法将vector中元素构造成堆的结构,因此priority_queue就是堆
- 默认情况下priority_queue是大堆
- 头文件为#include< queue >
//大堆
priority_queue<int> q1;
//小堆
priority_queue<int,vector<int>,greater<int>> q2;