C ++ for循环使用数组

时间:2016-04-28 13:17:22

标签: 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;
    }
}

我想要的是,对于redshift循环中的每个for,我希望Mass_min乘以M_ratio

即。适用于redshift = 0.0, Mass_min = Mass_min*1.0redshift = 0.2, Mass_min = 0.9*Mass_min等等。

1 个答案:

答案 0 :(得分: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;
}

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