В C ++ 98 я могу копировать диапазоны с помощью алгоритма std::copy
.
std::copy(source.begin(), source.end(), destination.begin());
Есть ли в C ++ 0x алгоритм, который перемещает элементы от источника к месту назначения?Или std::copy
как-то перегружен, чтобы принимать что-то вроде итераторов rvalue - есть ли такая вещь?
Алгоритм может выглядеть примерно так:
#include <utility>
template<class InputIterator, class OutputIterator>
OutputIterator mooove(InputIterator first, InputIterator last, OutputIterator result)
{
for (; first != last; ++first, ++last) *result = std::move(*first);
return result;
}