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 list使用第二种方法,将它们放在@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 }
};
}