使用类成员中的指针初始化2D数组?

时间:2013-11-04 11:56:25

标签: c++ pointers multidimensional-array

我想手动设置作为类成员的2D数组的值。很大程度上是因为我已经用不同的方法填充了循环,但是我想用不同的方法手工填充它。

class SomeClass {
private:
   int** myArray;
public:
   void setMyArray(int /*h*/,int /*w*/);
}

void SomeClass::setMyArray() {
// Something like this:
this->myArray** = { {1,2,3},{3,2,1},{4,5,6}};

}

如果失败了,有没有办法生成尺寸,然后手动填充?

void SomeClass::setMyArray( int height, int width ) {
// Something like this:
this->myArray** = new*int[height];
for ( 0...height, i ) {
    this->myArray[i] = new[width];
}

    myArray** = {{1,2,3},{1,2,3},{1,2,3}};

}

1 个答案:

答案 0 :(得分:1)

避免裸露指针:

vector<vector<int>> myArray {{1,2,3},{1,2,3},{1,2,3}};

您甚至可以稍后插入初始化列表并重新编写您的类,如下所示:

class SomeClass
{
    vector<vector<int>> myArray;
public:
    void setMyArray()
    {
        myArray.insert(myArray.end(), {{1,2,3},{1,2,3},{1,2,3}});
    }
};