/ / przechowywanie tablicy 2D w wektorze 2D w c ++ - c ++, tablice, wektor

przechowywanie tablicy 2D w wektorze 2D w c ++ - c ++, tablice, wektor

Załóżmy, że mam następującą matrycę 2D w następującym formacie. Pierwsza linia wskazuje wymiar, a pozostałe linie zawierają elementy. W tym przypadku jest to macierz 6 * 6:

6
1 2 3 4 2 3
3 3 4 5 2 1
4 3 3 1 2 3
5 4 3 6 2 1
3 2 4 3 4 3
2 3 4 1 5 6

Zwykle możemy przechowywać macierz w wektorze, używając tego:

typedef std::vector<int32_t> vec_1d;
typedef std::vector<vec_1d> vec_2d;
vec_2d array{
{ 1, 2, 3, 4, 2, 3 }
, { 3, 3, 4, 5, 2, 1 }
, { 4, 3, 3, 1, 2, 3 }
, { 5, 4, 3, 6, 2, 1 }
, { 3, 2, 4, 3, 4, 3 }
, { 2, 3, 4, 1, 5, 6 }
};

Ale jeśli chcę wziąć tę tablicę w formacie, który pokazałem powyżej, z pliku tekstowego do wektora 2D takiego jak powyższy, jak mam to zrobić w c ++?

Odpowiedzi:

1 dla odpowiedzi № 1

To powinno działać:

#include "fstream"
#include "vector"
using namespace std;

int main()
{
ifstream fin("file.txt");
int n;
fin >> n;
vector < vector <int> > matrix (n, vector <int>(n));
// or vec_2d matrix (n, vec_1d(n)); with your typedefs

for (auto &i: matrix)
for (auto &j: i)
fin >> j;
}