Я работаю над фрагментом кода, который читает данные из файлов и должен сохранить эти данные в многомерном векторе. Данные хранятся в трех столбцах в каждом файле, и я сохраняю данные из каждого файла в двухмерном векторе. Затем мне нужно сохранить данные из всех файлов в трехмерный вектор, в котором третий индекс представляет количество файлов.
Я не уверен, что делаю это правильно, и мне хотелось бы получить какое-то руководство. Когда я печатаю содержимое вектора _data, я ожидаю, что он будет печатать в каждой итерации цикла только данные j-го файла, вместо этого он печатает все данные.
Должен ли я очищать _data после прочтения каждого файла? И если да, то как мне очистить _data?
Спасибо.
vector< vector<double> > data(3);
vector< vector< vector<double> > > _data;
for (int i = 0; i < channels.size(); ++i){
ifstream ifs(channels.at(i));
if(!ifs){
cerr << "File could not be found." << endl;
exit(1);
}
else if(ifs.is_open()){
string line;
getline(ifs,line);
while(ifs.good()){
istringstream iss (line);
double x;
double y;
double err;
iss >> x >> y >> err;
data[0].push_back(x);
data[1].push_back(y);
data[2].push_back(err);
getline(ifs,line);
}
_data.push_back(data);
}
for ( int j = 0; j < channels.size(); ++j){
for ( int i = 0; i < data[0].size(); ++i){
cout << _data[j][0][i] << '\t' << _data[j][1][i] << '\t' << _data[j][2][i] << endl;
}
cout << "---------------" << endl;
}