sort算法的使用

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;
}