我想用另一个迭代器(同类)的后继者初始化一个迭代器(任意类型)。以下代码适用于随机访问迭代器,但它使用正向或双向迭代器失败:
Iterator i = j + 1;
一个简单的解决方法是:
Iterator i = j;
++i;
但是这不能用作for循环的 init-stament 。我可以使用如下的函数模板:
template <typename Iterator>
Iterator succ(Iterator it)
{
return ++it;
}
然后像这样使用它:
Iterator i = succ(j);
在STL或Boost中有类似的东西,还是有更好的解决方案我不知道?
答案 0 :(得分:14)