C++ 调用“(std::vector
我的错误:C++ 调用“(std::vector,c++,C++,我的错误: Matrix.cpp:13:27: error: no match for call to ‘(std::vector<std::vector<int> >) (int, std::vector<int>)’ M(3, vector<int>(3, 0)); 我的Matrix.h文件的一部分 vector<vector<int> > M; my Matrix.cpp文件的一部分 Matrix::Ma
Matrix.cpp:13:27: error: no match for call to ‘(std::vector<std::vector<int> >) (int, std::vector<int>)’
M(3, vector<int>(3, 0));
我的Matrix.h文件的一部分
vector<vector<int> > M;
my Matrix.cpp文件的一部分
Matrix::Matrix() {
M(3, vector<int>(3, 0));
}
我不太确定是否必须为我的.cpp文件在m前面写vector
Matrix::Matrix() : M(3, vector<int>(3, 0)) // <---
{}
感谢您的响应,但是为什么您不将M放在大括号内呢?数据成员是在执行{}中的代码之前创建的,因此M可以由vector的默认构造函数构造,它不带任何参数,或者您可以调用vectorint elem,在初始值设定项列表中调用t elem ctor。在{}中,您可以通过赋值操作修改M。@注意,您还可以编写M.resize3,vector3,0;在构造函数主体中,但是这个答案中的解决方案更好。了解更多详细信息。