【发布时间】:2012-09-20 18:58:40
【问题描述】:
C++11标准库包括以下相关算法:
template <class InputIterator, class ForwardIterator>
ForwardIterator uninitialized_copy(InputIterator first, InputIterator last,
ForwardIterator result);
template <class ForwardIterator, class T>
void uninitialized_fill(ForwardIterator first, ForwardIterator last,
const T& x);
template<class InputIterator, class OutputIterator>
OutputIterator copy(InputIterator first, InputIterator last,
OutputIterator result);
template<class ForwardIterator, class T>
void fill(ForwardIterator first, ForwardIterator last, const T& value);
template<class InputIterator, class OutputIterator>
OutputIterator move(InputIterator first, InputIterator last,
OutputIterator result);
没有标准的uninitialized_move 算法。这是疏忽还是设计使然?
如果是有意为之,原理是什么?
【问题讨论】:
-
std::move_if()和std::move_n()也是如此,顺便说一句。 -
请注意,
std::uninitialized_move出现在 C++17 中。不幸的是,没有std::uninitialized_move_if_noexcept。