2012-11-12 72 views
-1

我有一個問題。 如果我讀txt文件 如下:在C++中擴展二維數組11

12.5,14.8,17.4

21.6,25.9,32.4

27.8,36.2,45.1

23.8,28.6,40.5

我讀取的值要存儲在一個二維數組中2 x 3

如何使用C++ 11的寫

我原本2 x 3二維數組可以增長到4 x 3陣列

怎麼寫陣列可以長行數

當我最初陣列全

而且數據值是完全新的,更大陣列

謝謝

回答

0

重新聲明與新的大小的數組和複製數據,或使用std ::矢量

0

如果數組的大小而變化,不使用數組,而是使用std::vector,它可以動態地增長。在二維數據結構的情況下,使用矢量向量。在C++ 11ish僞代碼中:

using namespace std; 

vector<vector<double> > data; 
vector<double> dataLine; 

vector<double>* readDataLine(istream file) { 
    vector<double>* line = new vector<double>; 
    for (each row...) { 
     double value; 
     file >> value; 
     line->append(value); 
    } 
    return line; 
} 

void readFile() { 
    for (each line...) { 
     vector<double>* line = readLine(someFileStream) 
     data.append(line); 
    } 

    // access a single element like in an array: 
    double element = data[lineNo][rowNo]; 
}