1、sort简介
- sort函数包含在头文件
<algorithm>
中- sort函数使用之前,需要通过
#include <algorithm>
引入- sort函数使用的是快速排列或类似快速排列的改进算法,时间复杂度一般为O(nlog(n))
2、sort用法
2.1 基础用法
#include <iostream>
#include <algorithm> // 包含sort函数int main() {int arr[] = {5, 7, 1, -2, 4, 9};int n = sizeof(arr)/sizeof(arr[0]);std::sort(arr, arr + n); // 对整个数组进行升序排序for(int i = 0; i < n; ++i) {std::cout << arr[i] << " ";}return 0;
}
2.2 自定义比较函数
#include <iostream>
#include <algorithm>bool compare(int a, int b) {return a > b; // 降序排序
}int main() {int arr[] = {5, 7, 1, -2, 4, 9};int n = sizeof(arr)/sizeof(arr[0]);std::sort(arr, arr + n, compare); // 使用自定义比较函数进行排序for(int i = 0; i < n; ++i) {std::cout << arr[i] << " ";}return 0;
}
2.3 Lambda表达式
#include <iostream>
#include <algorithm>
#include <array>struct Person {std::string name;int age;
};int main() {std::array<Person, 3> people = {Person{"Alice", 30},Person{"Bob", 25},Person{"Charlie", 35}};std::sort(people.begin(), people.end(), [](const Person &a, const Person &b) -> bool {return a.age < b.age; // 根据年龄升序排序});for(const auto &person : people) {std::cout << person.name << " (" << person.age << ")\n";}return 0;
}
微语录:成功的秘诀在于坚持不懈奋斗与不断学习新知。无论前方的道路多么崎岖不平,勇于追梦的脚步不应停歇。