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

在C++中,对vector进行排序最常用的方法是使用标准库中的std::sort函数。这个函数定义在<algorithm>头文件中,能够高效地对vector中的元素进行升序或降序排列。
要使用std::sort,需要包含<algorithm>头文件。如果使用的是自定义类型或需要特定排序规则,可能还需要<functional>或其他辅助头文件。
立即学习“C++免费学习笔记(深入)”;
对于存储基本数据类型的vector(如int、double等),可以直接使用std::sort进行升序排序。
std::vector<int> nums = {5, 2, 8, 1, 9};
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<int>());
// 或使用泛型版本(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<Person> people = {{"Alice", 30}, {"Bob", 25}, {"Charlie", 35}};
// 按年龄升序排序
std::sort(people.begin(), people.end(),
[](const Person& a, const Person& b) {
return a.age < b.age;
});
上述代码使用lambda表达式定义比较逻辑,也可以写成普通函数或函数对象。
基本上就这些常见用法。掌握std::sort配合vector的使用,能应对大多数排序场景。注意确保比较函数满足“严格弱序”要求,避免未定义行为。
以上就是c++++中怎么对vector进行排序_c++ vector排序方法介绍的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号