C++ 初始化类中向量向量的两个维度

C++ 初始化类中向量向量的两个维度,c++,class,vector,initialization,stdvector,C++,Class,Vector,Initialization,Stdvector,我有一节课 class A { private: std::vector< std::vector<int> > v; //other statements } A类 { 私人: std::vectorv; //其他声明 } 我想通过将向量的两个维度传递给类的构造函数(可能使用初始值设定项列表)来初始化向量的两个维度 问题问了关于整数向量的相同问题,也问了关于向量向量初始化的问题,但在任何类之外。我想初始化两个维度的大小,但向量是

我有一节课

class A
{
    private:   
        std::vector< std::vector<int> > v;
    //other statements
}
A类
{
私人:
std::vectorv;
//其他声明
}
我想通过将向量的两个维度传递给类的构造函数(可能使用初始值设定项列表)来初始化向量的两个维度

问题问了关于整数向量的相同问题,也问了关于向量向量初始化的问题,但在任何类之外。我想初始化两个维度的大小,但向量是类成员


我怎样才能做到这一点?

您可以将它们放在成员初始值设定项列表中


像这样

class A{
public:
   A(int dim1,int dim2):v(dim1,std::vector<int>(dim2)){}
private:   
   std::vector< std::vector<int> > v;
};

是否要使用现有数据进行初始化

struct Matrix
{
    Matrix(std::initializer_list< std::initializer_list<int> > ilil)
    {
        data_.reserve(ilil.size());
        for (auto&& il : ilil)
        {
            data_.emplace_back(il);
        }
    }

    std::vector< std::vector<int> > data_;
};

void test()
{
    auto m = Matrix {
        { 1, 2, 3 },
        { 4, 5, 6 },
        { 7, 8, 9 }
    };
}
结构矩阵 { 矩阵(std::initializer\u listilil) { 数据保留(ilil.size()); 用于(自动和il:ilil) { 数据安置(il); } } std::vector数据; }; 无效测试() { 自动m=矩阵{ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; }
使用第二种方法,将它们放在@appleapple(或者您可以在构造函数正文中使用resize)@appleapple谢谢,但是我如何使用它来初始化这两个维度?就像第二个示例一样
struct Matrix
{
    Matrix(std::initializer_list< std::initializer_list<int> > ilil)
    {
        data_.reserve(ilil.size());
        for (auto&& il : ilil)
        {
            data_.emplace_back(il);
        }
    }

    std::vector< std::vector<int> > data_;
};

void test()
{
    auto m = Matrix {
        { 1, 2, 3 },
        { 4, 5, 6 },
        { 7, 8, 9 }
    };
}