我做了一個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 –