c++ sort用法
时间: 2023-11-14 22:12:10 浏览: 94
C++中的sort函数是一个常用的排序函数,可以对数组或容器中的元素进行排序。sort函数的用法如下:
1. 对数组进行排序:
sort(数组名, 数组名 + 数组长度);
2. 对容器进行排序:
sort(容器名.begin(), 容器名.end());
3. 对数组或容器进行降序排序:
sort(数组名/容器名.begin(), 数组名/容器名.end(), greater<类型>());
其中,第三个参数greater<类型>()表示按照类型进行降序排序。
需要注意的是,sort函数只能对内置数据类型和自定义类型进行排序,对于字符串类型需要使用字符串库中的sort函数。
相关问题
c++ sort 用法
`sort` 是 C++ 标准库中的一个函数,用于对数组或容器中的元素进行排序。`sort` 函数定义在 `<algorithm>` 头文件中,其基本用法是使用默认的比较函数(即升序排列),也可以通过自定义比较函数来实现其他类型的排序。
以下是 `sort` 函数的基本用法:
1. 升序排列,使用默认比较函数:
```cpp
#include <algorithm>
#include <vector>
int main() {
std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6};
std::sort(vec.begin(), vec.end()); // vec 现在是 {1, 1, 2, 3, 4, 5, 6, 9}
// ...
}
```
2. 降序排列,使用自定义比较函数:
```cpp
#include <algorithm>
#include <vector>
#include <functional> // for std::greater
int main() {
std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6};
std::sort(vec.begin(), vec.end(), std::greater<int>()); // vec 现在是 {9, 6, 5, 4, 3, 2, 1, 1}
// ...
}
```
3. 对自定义类型的数组或容器进行排序,需要定义比较规则:
```cpp
#include <algorithm>
#include <vector>
#include <string>
struct MyStruct {
std::string name;
int age;
};
bool compareMyStruct(const MyStruct &a, const MyStruct &b) {
return a.age < b.age; // 升序排列年龄
}
int main() {
std::vector<MyStruct> structs = {
{"Alice", 30},
{"Bob", 25},
{"Charlie", 35}
};
std::sort(structs.begin(), structs.end(), compareMyStruct); // 根据年龄升序排列
// ...
}
```
c++sort用法
C++中的`sort()`函数用于对容器中的元素进行排序。它可以用于数组、向量和字符串等容器。
`sort()`函数的使用方法如下:
```
#include <algorithm> // 包含sort函数的头文件
// 自定义比较函数
bool compare(int a, int b) {
return a < b; // 升序排列
}
int main() {
int arr[] = {5, 2, 8, 4,1};
int n = sizeof(arr) / sizeof(arr[0]);
// 对数组进行排序
std::sort(arr, arr + n); // 默认升序排序
// std::sort(arr, arr + n, compare); // 使用自定义比较函数进行排序
// 输出排序后的数组
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
return 0;
}
```
在上述代码中,我们首先包含了<algorithm>头文件,该头文件中包含了`sort()`函数的声明。然后我们定义了一个自定义的比较函数`compare()`,该函数用于指定排序的顺序。`compare()`函数返回`true`表示第一个参数小于第二个参数,即升序排列。
在`main()`函数中,我们声明了一个整数数组`arr`,并计算出数组元素的个数`n`。然后我们使用`sort()`函数对数组进行排序,可以选择使用默认的升序排序方式,也可以使用自定义的比较函数。
最后,我们使用循环输出排序后的数组元素。
注意,`sort()`函数只能用于容器,如果要对字符串进行排序,可以将字符串转换为字符数组后再进行排序。
阅读全文