算法 std::copy() 已经由 STL 编写完成,它会在源迭代器和目标迭代器上调用运算符 =++(用从源条目复制的数据覆盖目标条目)。因此,该算法假定目标集合必须已经至少拥有与源集合一样多的条目。

一个 std::back_insert_iterator<>“插入迭代器”是中间代码,它允许 std::copy() 的相同实现用于空的目标集合。该插入迭代器通过重新定义运算符 =++ 的效果来实现这一点。运算符 = 现在具有 veciDesti.push_back() 的效果,而运算符 ++ 现在什么也不做。

最后修改: 2025年01月30日 星期四 15:08