std::list::sort() 是稳定排序,基于归并排序实现;不同于 std::sort(),其成员函数为特化实现;自定义比较需满足严格弱序,否则行为未定义。

std::list::sort() 本身就是稳定排序,别自己重写
直接调用 std::list::sort() 就行,它不基于 quicksort 或 heapsort,而是用归并排序实现的 —— 这决定了它天然稳定(相同值的相对顺序不变)。很多人误以为它像 std::sort() 那样不稳定,其实那是针对随机访问迭代器的版本,std::list 的成员函数是特化实现。
自定义比较时必须满足严格弱序,否则行为未定义
传入比较函数(或 lambda)时,如果逻辑写错,sort() 可能崩溃、死循环,或看似排好但实际乱序。常见错误是把 当成 用:
comp(a,b)
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!











