我做了一个Matrix
类这种类型的构造函数:矢量不转换撑罩壳列表
Matrix<T>(const vector<vector<T>> &m)
如果我这样做,我可以实例Matrix
对象:
vector<vector<double>> a_v {
{ 17, 24, 1},
{ 23, 5, 7 },
{ 4, 6, 13 }
};
Matrix<double> a=a_v;
它工作正常,但我认为该che构造应该作为类型转换器,我认为这个代码也应该工作:
Matrix<double> a= {
{ 17, 24, 1},
{ 23, 5, 7 },
{ 4, 6, 13 }
};
然而与此第二个代码我得到这个错误:
could not convert ‘{{17, 24, 1}, {23, 5, 7}, {4, 6, 13}}’ from 'brace-enclosed initializer list' to ‘Matrix’
为什么C++11
不转换brace-enclosed initializer
到vector<vector<double>>
自动?
如果我想以这种方式初始化矩阵,该怎么办?
可能相关https://stackoverflow.com/questions/15810171/is-there-a-way-to-pass-nested-initializer-lists-in-c11-to-construct-a-2d-matri –