我在struct'matrix'中有2个构造函数。结构构造函数调用不明确
matrix(const unsigned int m, const unsigned int n);
matrix(const std::vector<std::vector<double>> &elements);
当我这样称呼它
matrix mat({{1},{1}});
它抛出错误
call of overloaded ‘matrix(<brace-enclosed initializer list>)’ is ambiguous
note: candidate: matrix::matrix(const std::vector<std::vector<double> >&)
note: candidate: matrix::matrix(const matrix&)
因此,它认为,这{{1},{1}} - 是 '矩阵'对象,但如何?
@AnT,是的,因为我有载体向量。我甚至可以输入{{1,2,3},{1,2},{1}}并将其编译。 –
@安,是的,我的错,谢谢。 –
'{1}'是'矢量','{{1},{1}}'是'std :: vector >'。如果你删除你的第一个构造函数,代码仍然应该编译。 –