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

现在,我想在这个数组中添加几列。我尝试了以下方法(将所有 10 的列添加到数组中),但如果失败:

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

有没有办法做到这一点?

谢谢!

4

1 回答 1

1

我已经运行了您的代码,并且成功添加了一个列。你说的失败是什么意思?

就我个人而言,我会使用一个向量将二维数组展平为 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);
   }

} 
于 2012-05-26T05:19:49.547 回答