C++中sort函数解释,举例
时间: 2024-09-15 13:09:36 浏览: 50
C++进阶宝典.docx
C++ 标准库中的 `sort()` 函数是 `<algorithm>` 头文件的一部分,它是一个通用的排序算法模板,可用于对不同类型的容器(比如数组、向量、列表等)以及可以进行迭代的范围内的元素进行排序。`sort()` 函数的基本语法如下:
```cpp
template< class RandomIt >
void sort(RandomIt first, RandomIt last);
```
其中:
- `first` 是要排序序列的起始迭代器,
- `last` 是排序序列结束但不包括的迭代器。
例如,如果你想对一个整数数组进行升序排序,可以这样做:
```cpp
#include <iostream>
#include <algorithm>
int main() {
int arr[] = {5, 2, 8, 1, 9, 4};
int n = sizeof(arr) / sizeof(arr[0]);
std::sort(arr, arr + n); // 对数组进行排序
// 输出排序后的结果
for (int i = 0; i < n; ++i) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
运行上述代码,输出将是:`1 2 4 5 8 9`。
对于自定义类型的比较,你可以通过提供一个二元谓词(binary predicate),比如一个 `bool` 类型的函数指针或lambda表达式来指定排序规则。例如,如果我们有一个 `Person` 类,可以根据年龄进行排序:
```cpp
class Person {
public:
std::string name;
int age;
//...
};
bool compareByAge(const Person &a, const Person &b) {
return a.age < b.age;
}
int main() {
std::vector<Person> people = {/* ... */}; // 假设已填充人及其年龄
std::sort(people.begin(), people.end(), compareByAge);
// ...
}
```
在这里,`compareByAge` 是一个比较函数,`sort()` 利用这个函数来确定元素的相对顺序。
阅读全文