Вы не можете просто переместить кишки контейнера в std::vector
.std::vector
не предоставляет возможность стать владельцем буфера.Вам нужно будет скопировать / переместить отдельные элементы в std::vector
.
Одна вещь, которую вы можете сделать, это переместить отдельные элементы в вектор, используя его конструктор итератора и std::make_move_iterator
.Вы не увидите никакой выгоды с int
, но если тип будет перемещаться быстрее, чем копировать, вы это сделаете.Это будет выглядеть как
some_container foo;
// populate foo
std::vector<some_type> moved_into{std::make_move_iterator(std::begin(foo)),
std::make_move_iterator(std::end(foo))};