【发布时间】:2015-03-29 16:42:03
【问题描述】:
如果我需要写一些 stl 风格的算法,原型是这样的:
template<typename RAIter>
void my_algo(RAIter begin, RAIter end, RAIter out);
看起来类似于例如标准::复制
关于输出迭代器的问题, 这是否意味着调用者代码应该分配足够的容量? 算法只使用 ++out 吗?没有任何检查。 还是算法应该添加新元素?怎么样?
【问题讨论】:
-
我认为您的算法应该注意输出迭代器所需的分配。至少,IMO,这是最直观的方式。
-
STL 风格的算法通常不能分配新的序列元素,也不能进行任何边界检查(专门的迭代器可以)。
标签: c++ stl iterator stl-algorithm