У меня есть текстовый файл, который имеет 256 пар данных. Мне нужно взять эти пары и поместить их в векторы для графа. Я знаю, как это сделать в C #, но я новичок в C ++. Формат текстового файла
125, 151
124, 176
ect...
Мне нужно, чтобы он входил в векторы для графа в формате graph [n] [m], где n = 256 и m = 256. Таким образом, я прочитал бы файл и отметил бы 1 на числе, которое соответствует L / R-паре.
Так, например, 125, 151. Я бы пошел на 125-ю строчку и обозначил бы 151-й 0 как 1.
[n][m]{{0,0,0... 1(//176th 0),0,0,0...}, //124th line
{0,0,0... 1(//151st 0),0,0,0...}, //125th line
ect.
Есть ли в C ++ что-либо подобное методу потокового чтения из C #?
Вот пример векторов для задачи максимального потока 7×7.
int graph[V][V] = { {0, 6, 7, 0, 0, 0, 0},
{0, 0, 1, 3, 4, 0, 0},
{0, 0, 0, 2, 0, 5, 0},
{0, 0, 0, 0, 3, 2, 0},
{0, 0, 0, 0, 0, 0, 7},
{0, 0, 0, 0, 2, 0, 4},
{0, 0, 0, 0, 0, 0, 0}
};
как @Beta сказал в комментариях под вашим вопросом, вы хотите
1) создать двумерный контейнер, полный нулей
2) читать цифры из текстового файла
3) изменить некоторые элементы в контейнере по номерам.
Итак, вот несколько советов:
1- Для создания 2D контейнера:
auto a = new int[100, 100]{0};
в этом коде вы сделали массив int
s, который полон нулей. элементы, которые не были инициализированы в { }
часть, установит значение по умолчанию. который равен нулю для int.
2- чтение чисел из текстового файла:
#include <iostream>
#include <fstream>
и в вашем коде:
int x , y;
ifstream fin("yourFile.txt");
fin >> x >> y; //Jusy like "cin"//Do what you want
//and after that close the stream
fin.close();
3- изменить некоторые элементы в контейнере по номерам:
Просто сделайте это так:
a[i,i] = x;
Других решений пока нет …