为什么我的函数参数不匹配
Why are my function parameters not matching up?
我有一个名为generate_all_paths的函数,定义如下:
template <int size>
void generate_all_paths(vector<string> maze[][size], int x, int y) {
....
}
我试图在我的主函数中调用它,如下:
int main() {
string s;
ifstream mazefile("maze.txt");
if (!mazefile) {
cout << "File not found. Please try again." << endl;
}
while (getline(mazefile, s)) {
mazevec.push_back(s);
}
generate_all_paths(mazevec, 0, 1);
return 0;
}
其中mazevec为vector<string> mazevec;
但是我的IDE说我在main中调用generate_all_paths与函数定义不匹配。我有点不明白为什么会这样。mazevec
是一个向量字符串,所以参数数据类型不应该匹配吗?
您传递给函数的mazevec是vector<string>
。你的函数定义表明它需要一个2D向量数组。在函数原型中,将其更改为:
void generate_all_paths(vector<string> maze, int x, int y);
您必须传递一个数组,但您已经传递了一个不是数组的变量。所以它们被看作是两个不同的函数。请传递vector类型的数组,然后再试一次
相关文章:
- Qt SQLite没有查询或参数计数不匹配
- 模板参数推导失败,函数参数/参数不匹配
- C++模板/别名 - 模板参数列表中参数 1 处的类型/值不匹配
- 错误:"模板<类_Tp,类_Dp>类 std::unique_ptr"的模板参数列表中参数 1 的类型/值不匹配
- 为什么使用不匹配的参数调用重载函数仍然有效
- 程序告诉我,即使它们明显匹配,参数也不匹配
- 模板参数'(type)0'与'EnumValue'不匹配
- (C++) 字符串文本与参数列表不匹配
- CvMat:输入参数的大小不匹配
- 参数错误可能与类型不匹配有关?
- 作为模板类型参数,为什么 type[N] 与其专用版本不匹配----模板<类 T>类 S<T[]>
- 模板参数列表中参数 3 处的类型/值不匹配
- 用户定义的构造函数重载与参数超类的重载不匹配
- 模板-模板参数给出神秘的类型/值不匹配
- POSIX(C )参数类型不匹配
- 演绎指南和具有可变参数模板构造函数的可变参数类模板 - 参数包长度不匹配
- 数据不匹配,编译器无法推断模板参数
- Python 参数类型与C++签名不匹配
- 类模板方法的专用化,类型名称是类模板 - 错误:参数处的类型/值不匹配
- C++ 可变参数模板和模板模板参数:错误:模板参数列表中参数 1 处的类型/值不匹配