int compare<std::vector<T>>(const std::vector<T> &lhs, const std::vector<T> &rhs);
时间: 2023-08-06 21:07:44 浏览: 112
在模板函数的函数名中,使用尖括号 `<>` 显式指定模板参数是错误的语法。在模板函数的定义中,应该使用 `template <typename T>` 或 `template <class T>` 语法来声明模板参数,而不需要显式指定模板参数类型。
因此,正确的写法应该是:
```
template <typename T>
int compare(const std::vector<T> &lhs, const std::vector<T> &rhs);
```
或者使用 `typename` 的简化形式:
```
template <class T>
int compare(const std::vector<T> &lhs, const std::vector<T> &rhs);
```
这样定义的模板函数可以比较两个 vector 容器内的元素是否相等。
相关问题
template <typename T> int compare<std::vector<T>>(const std::vector<T> &lhs, const std::vector<T> &rhs);有什么错误
在模板函数的函数名中,应该使用模板参数名 `T`,而不是具体的类型 `std::vector<T>`。因此,正确的写法应该是:
```
template <typename T>
int compare(const std::vector<T> &lhs, const std::vector<T> &rhs);
```
或者使用 `typename` 的简化形式:
```
template <class T>
int compare(const std::vector<T> &lhs, const std::vector<T> &rhs);
```
这样定义的模板函数可以比较两个 vector 容器内的元素是否相等。
阅读全文