Я бы хотел переместить unique_ptr, сохраненный в несортированном из них, в другой вектор, который будет содержать отсортированный вектор указателей.
Конечно, перемещение unique_ptr не приведет к автоматическому удалению элемента в первом векторе? Как я могу это сделать?
Пример того, что я хочу сделать:
std::vector<std::unique_ptr<T> > unsorted, sorted;
// fill the "unsorted" vector
while( unsorted.size() > 0 )
{
const auto it = find_next_element_to_add_to_sorted(unsorted);
sorted.push_back( std::move(*it) );
}
Надеюсь, цель ясна.
ОБНОВЛЕНИЕ : Мой алгоритм не позволяет выполнять сортировку на месте. Если кто-то чувствует себя хорошо сегодня (я не спрашиваю, см. Выше для моего вопроса), не стесняйтесь применить это для этой ситуации и покажите мне. Мне действительно нужно "сортировать по ходу". И я действительно не понимаю, почему переезд был бы , что намного дороже.