2016-04-02 19 views
-1

Aşağıdaki formatta bir 2B matrisim var. İlk satır boyutu gösterir ve diğer satırlar elemanları içerir.Bir 2D dizisini C++ içinde bir 2B vektörde saklamak

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 

Normalde bu kullanarak bir vektör içinde matrisi saklayabilirsiniz:

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 } 
}; 

ben formatında bu diziyi almak istiyorsanız Ama göstermiştir Bu durumda 6 * 6 Matris var Yukarıdaki gibi bir 2d vektöre bir metin dosyasından nasıl C++ içinde bunu yapacağım?

cevap

1

Bu çalışması gerekir:

#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; 
} 
İlgili konular