我对 c++ 中 for 循环内的变量范围有疑问。我有一个变量 j 计算某个条件,如下面的代码所示
int j;
for (int i=0; i<8; i++){
if ((betaSol(i,0) >= -HalfPi) && (betaSol(i,0) <= HalfPi)){
// j gives size of new vector where beta is within bounds
j++;
}
}
Eigen::MatrixXd vectorname(j,1);
现在我想在下一个 for 循环的条件下使用相同的 j 如下
for (int ii = 0; ii<j; ii++ ){
vectorname(ii,0) = functionname(alphaSol_filt(ii,0),betaSol_filt(ii,0));
}
这是问题发生的地方。这变成了一个无限循环,并且 ii 超出了界限。奇怪的是,当我用以下内容替换第二个循环时:
for (int ii = 0; ii<j; ii++ ){
std::cout << j <<std::endl;
}
它确实工作正常。但是,如果我改变任何东西,它就会变成一个无限循环,我不知道会发生什么