如果我正在經歷一個循環,說迭代的載體,以及我不想做一些項目的動作在載體中,我能做到這一點有兩種方式:迴路檢測約定
這是一個我喜歡使用:
vector<int> vec;
void loopFunction(int toIgnore) {
for (size_t index = 0; index < vec.size(); index++) {
if (vec[index] == toIgnore) continue;
// do stuff
}
}
這是一個我看到的大多數人使用:
vector<int> vec;
void loopFunction(int toIgnore) {
for (size_t index = 0; index < vec.size(); index++) {
if (vec[index] != toIgnore) {
// do stuff
}
}
}
我知道最後的結果是絕對沒有區別。但是,由於第二種方式打開一個新的範圍來執行,是否有任何區別?這兩種方法中的哪一種比另一種更受歡迎?
感謝
個人而言,我儘量避免嵌入範圍限定,所以我可以使用第一個例子使用'continue',以便循環中的所有內容都處於同一水平。所有關於偏好,但。沒有性能優勢,據我所知 –
我也更喜歡第一種方式來做到這一點。我不喜歡我的代碼中的嵌套作用域。但是,添加新範圍是否會增加開銷?我認爲這可能是大循環? – Everyone