在C++中改變一個for循環內的循環變量被允許:如何顯示循環控制變量在C++ for-loop內部沒有改變?
for(int i = 0; i < limit; i++) {
if(condition) {
i--;
}
}
現在,如果一個循環體是相當複雜它不是立即顯而易見的讀者循環變量是否改變循環內身體。這會很好地調整代碼,以便一旦閱讀器只看到for循環頭部,他立即知道循環變量不會改變。
例如,如果我使用const
:
const int value = computeValue();
//lots of code here
那麼很顯然,無論代碼如下const
變量定義變量是不變的寫入。
有沒有辦法實現類似的東西 - 迭代內的邏輯常量 - 在C++中的for循環控制變量的情況下?
我相信`std :: for_each`可以做到這一點。 – kennytm 2010-11-23 11:51:18
我用`BOOST_FOREACH`獲得了巨大成功。你甚至可以在預編譯頭文件中引入一個方便的`#define foreach BOOST_FOREACH`。 – 2010-11-23 12:26:38