Я просто пытаюсь прочитать данные из файла в вектор. Файл, как показано на изображении, я пытаюсь прочитать из содержит первое число (n), которое является числом узлов. После этого я прочитал n чисел веса. Наконец, я получаю соединение из матрицы смежности. Когда я компилирую свой код, он перестает работать.C++ пытается прочитать данные из файла в вектор
int main()
{
ifstream inFile;
string tline;
inFile.open("Problem.dat_50_50_0");
if(!inFile)
cout << "OPSS" << endl;
inFile >> tline;
inFile >> n;
for(int i = 0; i < 2 * (n + 1); i++)
inFile >> tline;
vector<vector<int> > matrix(n, vector<int>(n));
vector<list<int> > adj(n);
vector<int> weight(n);
vector<int> degree(n);
vector<string> color(n, white);
for(int i = 0; i < n; i++)
{
inFile >> weight[i];
weight.push_back(weight[i]);
}
inFile >> tline;
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
{
inFile >> matrix[i][j];
if(i == j)
matrix[i][j] = 0;
if(matrix[i][j] == 1)
adj[i].push_back(j);
}
}
Я пытаюсь открыть файл, чтобы прочитать первую строку, поместите этот номер в n
, а затем push_back
в векторе n
й номер после первой строки (которая представляет собой вес, как показано в картина). После прочтения веса мы переходим к матрице, чтобы получить соседей. Если matrix[i][j] == 1
, мы помещаем значение j
в вектор смежности.
Например, согласно изображениям, вектор прил будет выглядеть примерно так:
0 -> 1, 2
1 -> 0, 2, 3
2 -> 0, 1
3 -> 1
Прочитайте множество примеров по адресу: [StackOverflow C++ read file vector] (https://www.google.com/search?q=stackoverflow+c%2B%2B+read+file+vector+structure&ie= utf-8 & oe = utf-8) –
Картинка не отображается (мне кажется, вам нужно больше репутации, чтобы прикрепить ее здесь), и ошибка, которую вы получаете, не ясна: она хотя бы компилируется? И тогда у вас есть ошибка времени выполнения? Вы пробовали какую-то базовую отладку, чтобы понять, где она падает? –