Перенос диапазона в C++
Алгоритм move переносит значения по итераторам,
используя семантику перемещения для каждого элемента.
Функция лежит в #include <algorithm>.
Это не то же самое, что одиночный
std::move для аргумента: здесь
обрабатывается целый интервал.
Исходные ячейки остаются в допустимом,
но не обязаны сохранять прежний смысл.
Запишем два вектора и выведем приемник:
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
int main() {
std::vector<std::string> from = {"a", "b"};
std::vector<std::string> to(2);
std::move(from.begin(), from.end(), to.begin());
std::cout << to[0] << to[1] << "\n";
return 0;
}
Перенесите содержимое вектора {1, 2, 3} в другой вектор той же длины алгоритмом move и выведите сумму элементов приемника.