在我的程序中使用template <typename p>
时,它没有给出任何编译错误,但我使用template <class p>
给出了错误,而我传递了两个不同类型的向量。
template <class p>
getvector(std::vector<p>&vec)
{
// my operation
}
这是接收向量的函数,我使用template <typename p>
它没有给出编译错误。任何机构都可以解释与template <typename p >
答案 0 :(得分:1)
功能template declaration中的typename
和class
之间没有区别。声明模板参数时,它们的含义相同。您的函数需要返回类型:
template <class p>
std::vector<p> getvector(std::vector<p> &vec)
{
// your code
return vec;
}
与以下内容相同:
template <typename p>
std::vector<p> getvector(std::vector<p> &vec)
{
// your code
return vec;
}
如果您不想返回简单的void
功能,请执行以下操作:
template <typename p> // or template <class p>
void getvector(std::vector<p> &vec)
{
std::cout << vec[0]; // your code here
}