sort算法的使用
望文生义,sort是STL内置的一个排序算法,其底层是由多个排序算法的配合的使用。
- 需要包含的头文件
cpp
#include<algorithm>
- 使用
sort(参数1,参数2,参数3)
参数1:排序的左端点的迭代器或者地址
参数2:排序的右端点的迭代器或者地址
参数3:控制排序优先级的函数
注意:
代码例子:
- 对数组排序
cpp
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[100] = { 1,3,7,5,32,11,45,67 };
sort(a, a + 8);//注意是a+8而不是a+7,是最后一个元素的后一位,而不是最后一个元素
for (int i = 0; i < 8; i++)
{
cout << a[i] << " ";
}
return 0;
}
- 对容器排序,以vector为例
cpp
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
vector<int>arry;
arry.push_back(4);
arry.push_back(2);
arry.push_back(23);
arry.push_back(7);
sort(arry.begin(), arry.end());
for (int i = 0; i < arry.size(); i++) {
cout << arry[i] << " ";
}
return 0;
}
- 自己写函数改变排序优先级,将从小到大--->从大到小
cpp
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
bool cmp(int& a, int& b) {
return a > b;
}
int main()
{
vector<int>arry;
arry.push_back(4);
arry.push_back(2);
arry.push_back(23);
arry.push_back(7);
sort(arry.begin(), arry.end(), cmp);
for (int i = 0; i < arry.size(); i++) {
cout << arry[i] << " ";
}
return 0;
}