【发布时间】:2017-04-19 23:43:21
【问题描述】:
(此问题与Why does std::max_element require a ForwardIterator? 具有相同的“问题模板”,但答案必须不同,因为std::fill 不会将迭代器返回到输出序列中。)
std::fill 被定义为仅在输出范围由一对 ForwardIterators 给出时才起作用。然而,表面上相似的std::fill_n 可以很好地与 OutputIterator 配合使用。
算法肯定很简单
template<class OutIt, class T>
void fill(OutIt first, OutIt last, T value)
{
while (first != last) {
*first = value;
++first;
}
}
这个算法需要 ForwardIterator 怎么样?我错过了什么?
【问题讨论】: