sort函数

阅读量: 412 编辑

sort(begin, end, compare_fun):

排序函数,默认升序,区间左闭右开 [begin, end) 。

compare_fun 是 greater() 表示降序。compare_fun也可以自定义,返回 bool 类型。

int arr[8] = { 7, 13, 4, 5, 8, 1, 11, 9 };

int n = 8;
sort(arr, arr + n);	//升序排列
sort(arr, arr + n, greater<int>());	//降序排列

// int len = sizeof(arr) / sizeof(arr[0]); // 获取数组长度

// 数组长度为 n ,如果是从下标 1 开始
sort(arr + 1, arr + n + 1);

自定义比较函数

bool cmp(int x, int y){
    return x > y;		//降序排列
}

sort(arr, arr + 8, cmp);

使用vector

int arr[8] = { 7, 13, 4, 5, 8, 1, 11, 9 };
vector<int> vArr(arr, arr + 8);
sort(vArr.begin(), vArr.end(), greater<int>()); //降序排列

对结构体排序

//爱码岛编程
#include <bits/stdc++.h>
using namespace std;

struct student{
	string name;
	double score;
};

//分数降序 
bool cmp(student s1, student s2){
	return s1.score > s2.score;
}

int main() {
	student arr[3] = {
        {"李四",97},
        {"王五",90},
        {"张三",100}
    };
    //排序
    sort(arr, arr + 3, cmp); 
    for(int i = 0; i < 3; i++){
    	cout << arr[i].name << ":" << arr[i].score << endl; 
	}
	return 0;
}
爱码岛编程公众号
试卷资料
爱码岛编程小程序
在线刷题
苏ICP备13052010号
©2023 南京匠成信息科技有限公司