我在标题中出现错误。它指向了for循环声明的那一行。关于发生什么的任何想法?从'char *'无效转换为'char'
#include <iostream>
template <typename T>
T max(T* arr, size_t n)
{
if (!n)
throw("Can't take the max of an empty array, bro.");
T top = arr[0];
for (T* i(arr+1), j(arr+n); i != j; ++i)
if (*i > top)
top = *i;
return top;
}
int main()
{
char S[] = "kjadkjhdjasjkdaskjdsahd";
std::cout << max(S, strlen(S));
return 0;
}
FWIW,这可以用'std :: max_element'替换(并且用'std :: string'更好),并且缺少'strlen'的头文件。 – chris
这没什么好玩的,虽然 – user3461018