= std::array<std::array<double, 3>, 15>;
struct WeightedString {
GeneralizedTritString str;
double ch;
double r;
std::array<double, 7> s;
};
std::vector<WeightedString> input;
std::vector<WeightedString> read_input() {
std::vector<WeightedString> lines;
std::ifstream f_input("result.csv");
std::string str;
WeightedString next_line;
while (true) {
f_input >> str >> next_line.ch >> next_line.r;
for (int i = 0; i < 7; i++) {
f_input >> next_line.s[i];
}
if (!f_input || str.size() != 15) {
break;
}
next_line.str = {};
for (int i = 0; i < 15; i++) {
next_line.str[i][str[i] - '0'] = 1;
}
lines.push_back(next_line);
}
return lines;
}
input = read_input();
input.str - это GeneralizedTritString, который является псевдонимом для std::array<std::array<double, 3>, 15> (т.е. массива из пятнадцати массивов из трех double. Таким образом, можете использовать range-based-for, например: for(auto const& arr : input.str) for(double const d : arr) std::cout << d << '\n';
Обсуждают сегодня