2012-05-26 70 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); 
    } 

}