首页 > 解决方案 > 使用随机访问迭代器增量 > 1 进行迭代的规范方法?

问题描述

我们通常使用基于范围的 for 循环或基于 C++11 之前的基于迭代器的方法迭代容器:

for(auto current = container.begin(); current != container.end(); ++current)

它通常被认为是基于索引增量的“C-ish”迭代的首选方式:

for(auto currentId = 0; currentId != container.size(); ++currentId)

然而,如果要求是每第 N元素迭代一次,例如每三次迭代呢?

对上述方法的错误重写将给出:

// Error
for(auto current = container.begin(); current != container.end(); current += 3)

现在,我们的程序每次都表现出未定义的行为(container.size() % 3) != 0

标签: c++loopsiterator

解决方案


推荐阅读