У меня есть файл, который содержит значения в формате таблицы. Количество строк и столбцов в файле может отличаться.Ошибка сегментации на двумерном векторе
33829731.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00
205282038.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00
3021548.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00
203294496.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00
205420417.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00
Я использую двумерный вектор для хранения данных, используя следующий код.
ifstream inputCent("file.txt");
std::vector<std::vector<double> > C;
std::vector<double> col(15);
while(!inputCent.eof())
{
for(int i = 0; i < col.size(); i++)
{
inputCent >> col[i];
C[i].push_back(col[i]);
}
}
Но это дает мне Segmentation fault: 11
. Однако, если я инициализирую std::vector<std::vector<double> > C(15);
, то он работает в течение 15 строк. Но, как я сказал, количество строк может меняться. Почему я должен инициализировать размер C
? Или что я делаю неправильно?
Получил, спасибо. :) Глупая ошибка. –