我只是搞乱矢量。在前两个循环中,我使用数字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'是未定义的行为! –