История изменений
Исправление victor79, (текущая версия) :
Поместить указатели на строки в вектор ( например vector<std::pair<char*,char*>>{{begin, end}, …} ), отсортировать вектор, заменить диапазоны через какой-нибудь std::swap_range?
Спасибо, похоже так и придется делать.
Я уже сделал итераторный вариант, но он не работает, т.к. std::sort хочет, что бы значение строки помещало в себя контент строки, а не только указатель. И без этого вот этот кусочек из нее ломается:
typename iterator_traits<_RandomAccessIterator>::value_type
__val = _GLIBCXX_MOVE(*__i);
_GLIBCXX_MOVE_BACKWARD3(__first, __i, __i + 1);
*__first = _GLIBCXX_MOVE(__val);
---
UPD: Да, этот вариант оказался предельно простым, и сделался за пару минут. Вместо заморочного итераторного.
Исходная версия victor79, :
Поместить указатели на строки в вектор ( например vector<std::pair<char*,char*>>{{begin, end}, …} ), отсортировать вектор, заменить диапазоны через какой-нибудь std::swap_range?
Спасибо, похоже так и придется делать.
Я уже сделал итераторный вариант, но он не работает, т.к. std::sort хочет, что бы значение строки помещало в себя контент строки, а не только указатель. И без этого вот этот кусочек из нее ломается:
typename iterator_traits<_RandomAccessIterator>::value_type
__val = _GLIBCXX_MOVE(*__i);
_GLIBCXX_MOVE_BACKWARD3(__first, __i, __i + 1);
*__first = _GLIBCXX_MOVE(__val);