我正在写一个简单的代码,通过使用算法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;
}
使用 *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());
}