没有匹配到对“(std :: vector <std :: vector <int>>)(int,std :: vector <int>)”的调用

时间:2019-02-07 07:12:21

标签: 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;

我的Matrix.cpp文件的一部分

Matrix::Matrix() {
M(3, vector<int>(3, 0));
}

我不太确定我是否必须为我的.cpp文件在M前面编写vector >。该构造函数的总体目标是通过2D向量创建3x3矩阵,并将矩阵中的所有元素分配为0。

1 个答案:

答案 0 :(得分:1)

语法错误,如果要在初始化列表中初始化M,则应为:

Matrix::Matrix() : M(3, vector<int>(3, 0)) // <---
{}