在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;
}
operator=(T&&)
而不是复制赋值运算符operator=(const T&)
。 - fredoverflow