2012-05-26 56 views
0

我有一个具有n行和p列的二维数组中的数据。如何将列添加到二维数组

例如:

vector<vector<int> > dynamicArray(ROWS, vector<int>(COLUMNS)); 

for(int i = 0;i < dynamicArray.size();++i){ 
     for(int j = 0;j < dynamicArray[i].size();++j){ 
      dynamicArray[i][j] = i*j; 
     } 
} 

现在,我要到几列添加到这个阵列。我尝试以下(加入所有的10S到阵列的一列),但如果失败:

for(int i=0; i < dynamicArray.size(); i++){ 
    dynamicArray[i].push_back(10); 
} 

有没有办法做到这一点?

谢谢!

+4

以何种方式失败了吗? –

回答

1

我碰到你的代码,我已经成功地将一列。你的意思是什么失败了?

我个人已经变平的2维阵列成1使用一个单个载体。

class DynamicMatrix 
{ 
    vector<int> array; 
    int rows; 
    int columns; 
    public: 

    DynamixMatrix(int r,int c):array(vector<int>(r*c)),rows(r),columns(c){}; 

    int getValue(int x,int y) { return array[x+y*c];} 
    int setValue(int x,int y, int v) { array[x+y*c] = v;} 

    void AddRow() 
    { 
     rows++; 
     array.resize(rows*columns); 
    } 
    void AddColumn() 
    { 
     column++; 
     array.resize(rows*columns); 
    } 

}