如何将列添加到二维数组

时间:2012-05-26 05:05:43

标签: c++

我有一个包含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);
}

有办法做到这一点吗?

谢谢!

1 个答案:

答案 0 :(得分: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);
   }

}