【发布时间】:2010-11-23 11:45:41
【问题描述】:
在 C++ 中,允许在 for 循环中更改循环变量:
for( int i = 0; i < limit; i++ ) {
if( condition ) {
i--;
}
}
现在,如果循环体相当复杂,读者不会立即明白循环变量是否在循环体内部发生了变化。最好以某种方式调整代码,这样一旦读者只看到 for-loop 标头,他就会立即知道循环变量没有在 在主体内发生变化。
例如,如果我使用const:
const int value = computeValue();
//lots of code here
那么很明显,无论在const 变量定义下面写什么代码,该变量都不会改变。
在 C++ 中的 for-loop 控制变量的情况下,有没有办法实现类似的东西 - 迭代中的逻辑常量?
【问题讨论】:
-
我相信
std::for_each可以做到这一点。 -
我使用
BOOST_FOREACH取得了巨大成功。你甚至可以在你的预编译头文件中引入一个方便的#define foreach BOOST_FOREACH。
标签: c++ loops for-loop constants