C++ for循环使用数组

use*_*243 1 c++ arrays for-loop multiplication

我知道这是一个基本问题,但我是一个对C++很新的Python用户

我需要(cosmology.bias_eff)使用一个for循环来计算一个函数,输入参数(Mass_min)需要乘以一个数组(M_ratio).

我在这里使用两个循环一个错误.for

vector<double> M_ratio = {1.0,0.9,1.1,1.05,1.1,1.15,1.2,1.25,1.2};
double Mass_min = 2e13;
double Delta0 = 200.0;

for (redshift=0.0;redshift<1.7;redshift=redshift+0.2)
{   
    for (size_t i=0; i<M_ratio.size(); i++)
    {
        double Delta = cosmology.DeltaR(Delta0, redshift);

        double bias_eff = cosmology.bias_eff(M_ratio[i]*Mass_min,redshift,Delta);

        cout << bias_eff <<"," << endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

是我想,每一个redshiftfor循环中,我要Mass_min被相乘M_ratio,

即为redshift = 0.0, Mass_min = Mass_min*1.0,redshift = 0.2, Mass_min = 0.9*Mass_min等等.

Jea*_*nès 7

您只需要一个循环:

vector<double> M_ratio = {1.0,0.9,1.1,1.05,1.1,1.15,1.2,1.25,1.2};
double redshift;
int i;
for (redshift=0.0,i=0; i<M_ratio.size(); i++,redshift+=0.2) {
  double Delta = cosmology.DeltaR(Delta0, redshift);
  double bias_eff = cosmology.bias_eff(M_ratio[i]*Mass_min,redshift,Delta);
  cout << bias_eff <<"," << endl;
}
Run Code Online (Sandbox Code Playgroud)

在每次迭代中,redshift以0.2递增,同时i递增1.在循环内部进行所需的计算.