函数调用中的数据类型无法正确匹配

时间:2015-06-06 05:27:33

标签: c++ parameters

我有一个名为generate_all_paths的函数:

template <int size>
void generate_all_paths(vector<string> maze, int x, int y) {
....
}

当我在主叫它时:

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;
}

我的IDE说我在main中对generate_all_paths的调用与函数定义的参数的数据类型不匹配。

有谁知道为什么会这样?什么让我失望的是mazevec被定义为一个向量,就像generate_all_paths所希望的那样,但它不起作用。

1 个答案:

答案 0 :(得分:1)

在评论中,我了解到,template<int size>偶然出现了。 因此,I (and compiler)无法看到您的代码无法编译的任何原因。

检查您是否有#include <vector>using namespace std;,因为您没有为vector添加std::作为前缀。
此外,我还有理由将vector<string>作为const &传递。