c++ - 非常基本的模板功能出现问题

标签 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
  • 无法识别的模板声明/定义
  • 在“<”之前缺少“,”的语法错误

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

我在这里做错了什么?我已经查看了几个主题,尝试了定义等,但我仍然没有头绪。

最佳答案

我想你忘了#include <vector> .否则它应该工作 well .

顺便说一句:您可能会在 return a[maxIndex]; 之前检查 vector 是否为空.否则可能会返回无效引用,这将导致 UB .

关于c++ - 非常基本的模板功能出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35154820/

相关文章:

c++ - 更改默认/工作目录 Xcode 3.2.6

winapi - msvcrtd.dll 在哪里?

C++ 内联模板策略函数

c - 检测 Visual C++ 中存在哪个版本的 vswprintf()

visual-studio-2010 - 将文本文件作为本地资源包含在 exe 中

c++ - Qt 程序的速度性能 : Windows vs Linux

c++ - 动态访问 union

java - java对象的内存预留

c++ - 模板类构造函数问题——为 multidim 数组设计容器

templates - 与其他模板引擎(如 Velocity)类似的模板习惯用法?