Я сделал класс 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;
Он работает правильно, но я думаю, что этот конструктор должен действовать как преобразователь типов, и я думаю, что также должен работать этот код:
Matrix<double> a= {
{ 17, 24, 1},
{ 23, 5, 7 },
{ 4, 6, 13 }
};
Однако с этим вторым кодом я получаю эту ошибку:
не удалось преобразовать «{{17, 24, 1}, {23, 5, 7}, {4, 6, 13}}» из «списка инициализаторов, заключенных в фигурные скобки» в «Матрицу»
Почему C++11
не преобразует brace-enclosed initializer
в vector<vector<double>>
автоматически?
Что мне делать, если я хочу инициализировать матрицы таким образом?