ИМХО, вам следует держаться подальше от параллельных массивов и моделировать данные, используя struct
:
struct Record
{
int id;
std::string name;
int p_ordered;
//...
friend std::istream& operator>>(std::istream& input, Record& r);
};
std::istream& operator>>(std::istream& input, Record& r)
{
input >> r.id;
input >> r.name;
//...
return input;
}
Ваш входной код может выглядеть следующим образом:
std::vector<Record> database;
Record r;
while (infile >> r)
{
database.push_back(r);
}
Одна проблемас параллельными массивами есть вероятность, что они могут выйти из синхронизации.