麻烦非常基本的模板功能

时间:2016-02-02 13:27:40

标签: c++ templates visual-c++

在工作之余,我正在阅读我的大学教科书,并试图通过旧工作来保持敏锐。我在旧的数据结构书中遇到了这个问题:

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
  • 无法识别的模板声明/定义
  • 语法错误缺失','在'&lt;'
  • 之前

我非常生疏(VB.Net让我有点虚弱)。

我在这里做错了什么?我查看了几个主题,使用了定义等等,我仍然没有线索。

1 个答案:

答案 0 :(得分:2)

我想你忘了#include <vector>。否则它应该有效well

BTW:您可以在return a[maxIndex];之前检查向量是否为空。否则,可能会返回无效的引用,这将导致UB