c++ sort使用
时间: 2023-08-27 10:13:31 浏览: 66
在C++中,可以使用标准库中的`std::sort`函数对容器中的元素进行排序。`std::sort`函数的用法如下:
```cpp
#include <algorithm>
std::sort(begin, end)
```
其中,`begin`和`end`分别是排序范围的起始和结束迭代器,表示要排序的元素的范围。
下面是一个示例代码,展示如何使用`std::sort`函数对整型数组进行升序排序:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> nums = {5, 2, 9, 1, 3};
// 对整型数组进行升序排序
std::sort(nums.begin(), nums.end());
// 输出排序后的结果
for (int num : nums) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
上述代码中,我们使用`std::sort`函数对整型数组`nums`进行升序排序。通过传入`nums.begin()`和`nums.end()`作为参数,指定了要排序的范围。最后,我们使用循环输出排序后的结果。
如果需要对自定义的数据类型进行排序,可以通过重载比较运算符(`<`)来定义元素之间的比较规则,或者通过自定义比较函数来传递给`std::sort`函数。例如:
```cpp
struct Person {
std::string name;
int age;
};
bool compareAge(const Person& person1, const Person& person2) {
return person1.age < person2.age;
}
int main() {
std::vector<Person> people = {{"Alice", 25}, {"Bob", 30}, {"Charlie", 20}};
// 对自定义的数据类型进行排序,按照年龄升序排序
std::sort(people.begin(), people.end(), compareAge);
// 输出排序后的结果
for (const Person& person : people) {
std::cout << person.name << " (" << person.age << ") ";
}
std::cout << std::endl;
return 0;
}
```
上述代码中,我们定义了一个自定义的数据类型`Person`,包含姓名和年龄两个成员变量。然后,我们定义了一个比较函数`compareAge`,用于按照年龄升序排序。在`std::sort`函数中,我们通过传入`compareAge`函数作为第三个参数,指定了元素之间的比较规则。最后,我们使用循环输出排序后的结果。
总结来说,`std::sort`函数是C++标准库中用于排序的函数,可以对容器中的元素进行升序排序。对于自定义的数据类型,可以通过重载比较运算符或者自定义比较函数来指定元素之间的比较规则。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)