使用std::sort需包含头文件;2. 对vector基本类型可直接排序,默认升序;3. 降序需传入std::greater;4. 自定义类型可用lambda或函数对象定义规则。

在C++中,对vector进行排序最常用的方法是使用标准库中的std::sort函数。这个函数定义在
包含必要的头文件
要使用std::sort,需要包含
include
include
include iostream>
立即学习“C++免费学习笔记(深入)”;
基本用法:默认升序排序
对于存储基本数据类型的vector(如int、double等),可以直接使用std::sort进行升序排序。
std::vector
std::sort(nums.begin(), nums.end());
// 结果:{1, 2, 5, 8, 9}
参数说明:
- 第一个参数是起始迭代器(begin())
- 第二个参数是结束迭代器(end()),注意不包含最后一个元素
降序排序
如果希望按降序排列,可以在调用std::sort时传入第三个参数,比如std::greater()。
std::sort(nums.begin(), nums.end(), std::greater
// 或使用泛型版本(C++14及以上)
std::sort(nums.begin(), nums.end(), std::greater());
这样排序后结果为:{9, 8, 5, 2, 1}
自定义排序规则
对于复杂类型(如结构体)或特殊排序需求,可以传入自定义的比较函数或lambda表达式。
struct Person {
std::string name;
int age;
};
std::vector
// 按年龄升序排序
std::sort(people.begin(), people.end(),
[](const Person& a, const Person& b) {
return a.age
});
上述代码使用lambda表达式定义比较逻辑,也可以写成普通函数或函数对象。
基本上就这些常见用法。掌握std::sort配合vector的使用,能应对大多数排序场景。注意确保比较函数满足“严格弱序”要求,避免未定义行为。










