なぜこの結果は無限ループになりますか?これはなぜ無限ループに入りますか?
for
ループを入力した後、私はi
とv.size()-2
の値を印刷し、それらはそれぞれ0
と-1
あります。したがって、ループ条件はfalse
でなければなりません。次に、このプログラムはまず最初にfor
ループに入りますか?
#include <iostream>
#include <vector>
int main() {
std::vector<int> v {1};
std::cout << "Size:: " << v.size();
for (int i=0 ; i <= (v.size()-2) ; i++) {
std::cout << "Hello";
}
return 0;
}
正確にあなたがどこにいるか " - 2()v.sizeの値を印刷":追加で減算を置き換え、このような状況を避けるために
? –
あなたのプログラムは、 'i ++'が符号付き整数オーバーフローを引き起こすため、おそらく未定義の動作をしています。 –
あなたのコンパイラは、署名付きの符号なし比較について警告していたはずです。それができない場合は、警告をどのようにして増やすかを見つけてください。 – molbdnilo