gpt4 book ai didi

c++ - 从 'char*' 到 'char' 的无效转换

转载 作者:太空宇宙 更新时间:2023-11-04 15:19:28 25 4
gpt4 key购买 nike

我在标题中遇到错误。它指向声明 for 循环的行。对正在发生的事情有什么想法吗?

#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;
}

最佳答案

行内:

for (T* i(arr+1), j(arr+n); i != j; ++i)

只有 i 被声明为指向 T 的指针,j 被声明为 T 的实例。正确的声明是:

for (T* i(arr+1),* j(arr+n); i != j; ++i)

顺便说一下,你应该为 strlen 添加 include:

#include <cstring>

关于c++ - 从 'char*' 到 'char' 的无效转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22674276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com