std::sort是最常用vector排序方法,默认升序,传入begin()和end()迭代器;支持降序(greater或lambda)、自定义类型(重载
用 std::sort 对 std::vector 排序最常用也最直接,只需传入起始和结束迭代器,它默认按升序排列元素。
对存储基本类型(如 int、double)的 vector,直接调用 std::sort(vec.begin(), vec.end()) 即可:
vec.begin() 指向首元素,vec.end() 指向末尾之后的位置(左闭右开区间)传入 std::greater 作为第三个参数即可实现降序:
std::sort(vec.begin(), vec.end(), std::greater()); [](int a, int b) { return a > b; }
true 表示“a 应排在 b 前面”若 vector 存的是结构体或类,
需明确比较逻辑:
立即学习“C++免费学习笔记(深入)”;
operator:让类型支持默认升序
name 字典序升序:std::sort(v.begin(), v.end(), [](const Person& a, const Person& b) { return a.name
只对子区间排序也很方便,比如只排后一半:
auto mid = vec.begin() + vec.size() / 2;std::sort(mid, vec.end());mid 不越界(vec.size() > 0)