【发布时间】:2017-04-29 01:32:35
【问题描述】:
我目前有一个程序,它从 dat 文件中获取数据并形成一个二维向量。现在,我有 10 个 dat 文件和 10 个不同的函数,每个函数都创建一个向量。我想知道如何缩短代码并创建一个函数,通过传递带有 dat 文件名称的字符串来创建二维向量。下面我列出了几个函数。
vector<vector<double> > Cosmic_ray_events()
{
const double columns = 8.;
ifstream cosmic_ray_data("events_comp-h4a_10.00-10000.00PeV_zen37.00.dat", ios::in);
vector< vector<double> > cosmic_ray;
while(cosmic_ray_data.good())
{
vector <double> row_vector;
for(int i = 0; i < columns; i++)
{
double data;
cosmic_ray_data >> data;
row_vector.push_back(data);
}
cosmic_ray.push_back(row_vector);
//cout << cosmic_ray[i][data];
}
cosmic_ray_data.close();
for(double k = 0; k < cosmic_ray.size(); k++)
{
for (double z = 0; z < cosmic_ray[k].size(); z++)
{
cout << cosmic_ray[k][z] << " " << endl;
}
}
return(cosmic_ray);
}
vector<vector<double> > IC40_events()
{
const double columns = 8.;
ifstream IC40_events_data("IC40_exp.dat", ios::in);
vector< vector<double> > IC40;
while(IC40_events_data.good())
{
vector <double> row_vector1;
for (int j = 0; j < columns; j++)
{
double IC40_data;
IC40_events_data >> IC40_data;
row_vector1.push_back(IC40_data);
}
IC40.push_back(row_vector1);
}
IC40_events_data.close();
return(IC40);
} 代码在这里
【问题讨论】: