c++ 对vector排序
时间: 2023-07-08 08:49:16 浏览: 214
在C++中,可以使用 `<algorithm>` 头文件中的 `sort` 函数对 `vector` 进行排序。 `sort` 函数需要指定排序的起始地址和结束地址,并且可以提供一个比较函数,用于指定排序的规则。下面是一个示例代码:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(int a, int b) { // 自定义比较函数
return a > b; // 按从大到小排序
}
int main() {
vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5}; // 定义一个vector
sort(vec.begin(), vec.end()); // 默认从小到大排序
for (int i = 0; i < vec.size(); i++) {
cout << vec[i] << " ";
}
cout << endl;
sort(vec.begin(), vec.end(), cmp); // 按从大到小排序
for (int i = 0; i < vec.size(); i++) {
cout << vec[i] << " ";
}
cout << endl;
return 0;
}
```
上述代码中,我们首先定义了一个 `vector`,然后使用 `sort` 函数进行排序。我们定义了一个自定义比较函数 `cmp`,用于指定按从大到小排序。注意,当使用自定义比较函数时,需要将其作为 `sort` 函数的第三个参数传入。
输出结果为:
```
1 1 2 3 3 4 5 5 5 6 9
9 6 5 5 5 4 3 3 2 1 1
```
可以看到,第一个输出结果是按照从小到大排序的,第二个输出结果是按照从大到小排序的。
阅读全文