template<class InputIterator, class OutputIterator>
OutputIterator move(InputIterator first, InputIterator last, OutputIterator result);
Effects: Перемещает элементы диапазона [first, last) в диапазон, [result, result + (last - first)) начиная с первого и заканчивая последним. Для каждого неотрицательного целого числа n < (last-first)выполняется *(result + n) = std::move(*(first + n)).
template<class ExecutionPolicy, class ForwardIterator1, class ForwardIterator2>
ForwardIterator2 move(ExecutionPolicy&& policy,
ForwardIterator1 first, ForwardIterator1 last,
ForwardIterator2 result);
Effects: Перемещает элементы из диапазона [first, last) в диапазон [result, result + (last - first)). Для каждого неотрицательного целого числа n < (last - first)выполняется *(result + n) = std::move(*(first + n)).
template<class BidirectionalIterator1, class BidirectionalIterator2>
BidirectionalIterator2
move_backward(BidirectionalIterator1 first,
BidirectionalIterator1 last,
BidirectionalIterator2 result);
move_backward следует использовать вместо move, когда последний находится в диапазоне [result - (last - first), result).