我有一个名为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
是一个矢量字符串,所以参数数据类型不应该匹配吗?
答案 0 :(得分:2)
您传递给该函数的mazevec是vector<string>
。您的函数定义表明它需要2D矢量数组。在您的函数原型中,将其更改为:
void generate_all_paths(vector<string> maze, int x, int y);
这应该有用。
答案 1 :(得分:0)
你必须传递一个数组,但是你传递了一个不是数组的变量。所以他们被视为两个不同的功能。 请传递一个类型向量数组,然后重试。