C++ 函数调用中的数据类型未正确匹配
我有一个名为generate_all_path的函数:C++ 函数调用中的数据类型未正确匹配,c++,parameters,C++,Parameters,我有一个名为generate_all_path的函数: template <int size> void generate_all_paths(vector<string> maze, int x, int y) { .... } 模板 void生成所有路径(向量迷宫、int x、int y){ .... } 当我在main中调用它时: int main() { vector<string> mazevec; string s; ifstrea
template <int size>
void generate_all_paths(vector<string> maze, int x, int y) {
....
}
模板
void生成所有路径(向量迷宫、int x、int y){
....
}
当我在main中调用它时:
int main() {
vector<string> mazevec;
string s;
ifstream mazefile("maze.txt");
while (getline(mazefile, s)) {
mazevec.push_back(s);
}
generate_all_paths(mazevec, 0, 1);
return 0;
}
intmain(){
马西韦克病媒;
字符串s;
ifstream mazefile(“maze.txt”);
while(getline(mazefile,s)){
马泽韦克。推回(s);
}
生成所有路径(mazevec,0,1);
返回0;
}
我的IDE说我在main中生成所有路径的调用与函数定义的参数的数据类型不匹配
有人知道为什么会这样吗?让我恼火的是,
mazevec
被定义为一个向量,这是生成所有路径所需要的,但它不起作用。在评论中,我了解到,模板
是偶然出现的。
因此,我看不出代码不应该编译的任何原因
检查是否有#包含和使用名称空间标准代码>,因为您没有在向量
前面加std::
另外,将向量
作为常量&
传递也是一个很好的理由,因为它是一个模板函数,您不提供模板参数,也无法推断它<代码>生成所有路径(…)
看起来更像它。问你一个问题,为什么你的模板函数有一个size
模板参数?@WhozCraig是的,我不小心把那部分放在那里了,但现在它应该不会影响为什么生成所有路径没有匹配的参数,对吗?mazevec是一个向量,这就是函数所要求的。@它不应该??你有没有试着把它从函数decl上取下来?当然它没有被使用,但是什么让你认为它不需要被提供呢?我当然没有被推断。或者尝试:生成所有路径(mazevec,0,1)代码>,当它工作时,考虑为什么。