模板不能从'const _Ty'转换为'T'。

问题描述 投票:-1回答:1

我正在写一个简单的代码,通过使用算法min和max分别从一个向量中获取最小值和最大值。但是我得到了两个错误:'return':不能从'const _Ty'转换为'T'。

下面是代码。

#include <iostream>
#include <vector>
#include <algorithm>

template<typename T>
T minValue(std::vector<T> v) {
    return min(v.begin(),v.end());
}

template<typename T>
T maxValue(std::vector<T> v) {
    return max(v.begin(),v.end());
}


int main() {
    std::vector<int> v = { 1,2,15,3,4,5,0 };
    std::cout << "The min value is: " << minValue(v) << "\n";
    std::cout << "The max value is: " << maxValue(v) << "\n";
    return 0; 
}
c++ templates vector
1个回答
1
投票

使用 *min_element 和 *max_element 分别代替 min 和 max。

template<typename T>
T minValue(std::vector<T> v) {
    return *min_element(v.begin(),v.end());
}

template<typename T>
T maxValue(std::vector<T> v) {
    return *max_element(v.begin(),v.end());
}
© www.soinside.com 2019 - 2024. All rights reserved.