我只是搞亂矢量。在前兩個循環中,我使用數字1填充每個矢量,然後跳到下一個索引並執行相同的操作。在我的最後一個循環中,我只計算了包含數字1的索引數。爲什麼計數返回3而不是1?唯一包含數字1的指數應爲零。C++矢量匹配
#include <vector>
#include <string>
#include <iostream>
using namespace std;
int main() {
vector <int> v1;
vector <int> v2;
int N = 20;
int count = 0;
for(int i = 0; i <= N; i+=3) {
v1.push_back(1);
}
for(int i = 0; i <= N; i+=7) {
v2.push_back(1);
}
for(int i = 0; i <= N; ++i) {
if(v1[i] == 1 && v2[i] == 1) count++;
}
cout << count; // returns 3. But why!?
}
因爲你'1'印花布在你的向量,訪問' v1'超出索引'2'是未定義的行爲! –