我有一个包含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);
}
有办法做到这一点吗?
谢谢!
答案 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);
}
}