尝试用std::sort对std::list排序,编译器报错;
std::sort
算法需要随机访问迭代器,而 std::list
的迭代器不支持随机访问。因此不能直接使用 std::sort
对 std::list
进行排序。
如果你想对 std::list
进行排序,可以使用 std::list
自带的 sort
成员函数,它使用归并排序实现,时间复杂度为 O(n\log n)O(nlogn)。使用方法如下:
std::list<int> mylist = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5 };
mylist.sort();
for (int i : mylist) {
std::cout << i << ' ';
}