Переместить диапазон элементов между контейнерами? - PullRequest
7 голосов
/ 10 ноября 2010

Я просматривал документацию C ++ для функции, которая могла бы перемещать диапазон элементов из одного контейнера в другой, используя семантику перемещения.Однако я не нашел такой функции.Чего мне не хватает?

Как бы я сделал следующее без копирования и использования явных циклов?

// Move 10 elements from beginning of source to end of dest
dest.end() <- move(source.begin(), source.begin() + 10) 

1 Ответ

8 голосов
/ 10 ноября 2010

Я думаю, вы ищете std::move в <algorithm>:

std::move(source.begin(), source.begin() + 10,
            std::insert_iterator(dest, dest.end()));

Это похоже на std::copy, за исключением того, что он назначает перемещение вместо копий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...