C ++创建可变数量的数组

时间:2013-12-07 17:41:18

标签: c++ arrays variables root

我已经读过.txt文件中的列(文件的开头有列数(nCol))并将值放入数组中(浮点值[nCol] [nLin])。

现在,我想将值(例如:values [0] [nLin],values [1] [nLin] ...)复制到不同的float数组中,具体取决于列数。

如果根据我正在阅读的文件更改列数,我如何为每列创建浮点数组?

//------ Declares Array for values ------//
const int nCol = countCols;
float values[nCol][nLin];

// Fill Array with '-1'
for(int c=0; c<nCol; c++){
    for(int l=0; l<nLin; l++) {
        values[c][l] = -1;
    }
}


//------ Skips the reading of line of values file ------//
getline(inFile, dummyLine);

// reads file to end of *file*, not line 
while(!inFile.eof()) {
    for(int y=0; y<nLin; y++){
        for (int i=0; i<nCol; i++) {
            inFile >> values[i][y];
        }
    i=0;    
    }
}

const int nValues = countLines;

float Col1[nValues]=-1,
      Col2[nValues]=-1,
      Col3[nValues]=-1,
      Col4[nValues]=-1,
      Col5[nValues]=-1;

//------ Put values in specific Arrays ------//

for(int v=0; v<nValues; v++) {
        Col1[v] = values[0][v];
        Col2[v] = values[1][v];
        Col3[v] = values[2][v];
        Col4[v] = values[3][v];
        Col5[v] = values[4][v];
}
cout << endl;

我希望float Col1[]从1到nCol,最后一个是float ColnCol[]

2 个答案:

答案 0 :(得分:3)

IMO使用std::vector< std::vector<float> >

的最佳方式

您不需要制作不同的1D列,因为您可以根据需要操作此向量矢量。

答案 1 :(得分:0)

您应该使用std::vector。对于数据类型的动态大小分配,这是一个更好的选择。