工作之余,我正在翻阅我的大学教科书,并努力重温以前的作业,以保持敏锐。不过,我在我的旧数据结构书中遇到了这个问题:
template <typename Comparable>
const Comparable & findMax(const vector<Comparable> & a) {
int maxIndex = 0;
for (int i = 1; i < a.size(); i++) {
if (a[i] > a[maxIndex]) {
maxIndex = i;
}
}
return a[maxIndex];
}
给我错误:
- 缺少类型说明符 - 假定为 int
- 无法识别的模板声明/定义
- 在“<”之前缺少“,”的语法错误
我非常生疏(VB.Net 让我有点虚弱)。
我在这里做错了什么?我已经查看了几个主题,尝试了定义等,但我仍然没有头绪。
最佳答案
我想你忘了#include <vector>
.否则它应该工作 well .
顺便说一句:您可能会在 return a[maxIndex];
之前检查 vector 是否为空.否则可能会返回无效引用,这将导致 UB .
关于c++ - 非常基本的模板功能出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35154820/