无法弄清楚为什么我会收到此错误:
error: no matching function for call to ‘write_vector(int&)’
template <typename T>
void write_vector(const vector<T>& V)
{
cout << "The numbers in the vector are: " << endl;
for(int i=0; i < V.size(); i++)
cout << V[i] << " ";
}
int main()
{
int input;
vector<int> V;
cout << "Enter your numbers to be evaluated: " << endl;
cin >> input;
V.push_back(input);
write_vector(input);
return 0;
}
答案 0 :(得分:1)
写
write_vector(V); //V is std::vector<int>
而不是
write_vector(input); //input is int
请尝试了解错误消息。它提供了很多关于代码中出错的提示。
此外,您似乎已在代码中的某处写了using namespace std
。不要这样做。删除该行。然后使用std::vector
使用vector
。这是更好的编码风格,可以避免using namespace std
引起的许多问题,特别是在大型项目中。
答案 1 :(得分:0)
将输入变量传递给函数,模板函数需要一个向量。尝试传入V insted
答案 2 :(得分:0)
您使用错误的参数调用write_vector函数。在您刚发布的代码中,您使用'input'作为参数调用该过程,但'input'是'int'类型而不是'vector'。