Я думаю, что заголовок вопроса достаточно ясен: возможен ли stable_sort () std :: list в C ++? Или мне нужно преобразовать его в std :: vector?
Я спрашиваю, потому что я попробовал простой пример, и, похоже, он требует RandomAccessIterators, которых нет в связанном списке. Итак, как мне стабильно сортировать std :: list () ?
РЕДАКТИРОВАТЬ: образец кода, который дает мне ошибку:
#include <list>
#include <algorithm>
// ...
list<int> the_list;
stable_sort(the_list.begin(), the_list.end());
g ++ дает мне около 30 строк ошибок (слишком длинных для вставки), причем некоторые из них ссылаются на RandomAccessIterators (и то, что называется _merge_sort_loop). Это немного странно, поскольку я видел несколько реализаций сортировки слиянием для связанных списков, и они в значительной степени «последовательные».