如何在C++中对vector进行排序_C++ vector排序函数与自定义比较
程序猿
•
2025年12月19日 00:33:14
•
好文分享 •
阅读 0
升序排序 使用std::sort默认行为,降序需传入std::greater();自定义排序可使用函数指针或Lambda表达式;std::sort平均和最坏时间复杂度均为O(n log n),适用于大多数场景,但小数据量、近有序序列或需稳定排序时可考虑插入排序或std::stable_sort。
C++ 中对 vector 排序,通常使用 std::sort 函数,可以自定义比较函数来实现更灵活的排序规则。
使用 std::sort 函数对 vector 进行排序。
如何使用 std::sort 函数对 vector 进行升序和降序排序?
std::sort 函数是 C++
降序排序:
要进行降序排序,可以使用 std::greater 仿函数作为比较函数。
#include #include #include int main() { std::vector numbers = {5, 2, 8, 1, 9, 4}; std::sort(numbers.begin(), numbers.end(), std::greater()); // 降序 std::cout << "降序排序后: "; for (int num : numbers) { std::cout << num << " "; } std::cout << std::endl; return 0;}
在这个例子中,std::greater() 创建了一个比较函数对象,它定义了 > 运算符的行为,从而实现了降序排序。
如何自定义比较函数对 vector 进行排序?
有时,默认的升序或降序排序无法满足需求。例如,需要按照元素的某个特定属性进行排序,或者需要自定义排序规则。这时,可以自定义比较函数。