下記のコードを実行すると
二番目のfor文が条件を満たしていない(ように見える)のに無限ループしてしまうのですが、何故でしょうか?
c++
1#include <bits/stdc++.h> 2using namespace std; 3 4int main() { 5 vector<vector<int>> vecs(2); 6 vecs[1].push_back(1); 7 // vecs[0].size() == 0 8 // vecs[1].size() == 1 9 for (vector<int> vec : vecs) { 10 int test = 1; 11 // 初回のループでは、「i == 0 かつ vec.size() - 1 == -1」 より「 i < vec.size()-1 == false」 12 // なのにこの下のfor文の中が実行されてしまう(無限ループする?) 13 for (int i = 0; i < vec.size() - 1; i++) { 14 cout << "in for loop" << endl; 15 } 16 } 17 return 0; 18}
回答1件