gpt4 book ai didi

c++ - 功能模板返回类型

转载 作者:行者123 更新时间:2023-12-02 10:06:32 25 4
gpt4 key购买 nike

我在C++中很新。我正在做一个学校作业,该作业需要使用功能模板来找到数组的最大值。在我将其更改为功能模板之前,该代码似乎可以正常使用。我现在收到一个错误:

maxcpp.cpp:9:16: error: indirection requires pointer operand ('int' invalid)
return *myArr[first];

不太确定那里发生了什么,但会有所帮助。

这是源代码:

template <typename T>
T maxArray(T myArr, int first, int last){

if(first == last){
return myArr[first];
}
else
{
int mid = first + (last-first)/2;
return(std::max(maxArray(myArr,first,mid),maxArray(myArr,mid+1,last)));
}
}

int main(){

int array1[] = {5,20,3,1};

std::cout << maxArray(array1,0,4) << std::endl;

return 0;
}

最佳答案

您可以按照以下方式更改参数类型:

template <typename T>
T maxArray(const std::vector<T>& myArr, int first, int last){

if(first == last)
{
return myArr[first];
}
else
{
int mid = first + (last-first)/2;
return(std::max(maxArray(myArr,first,mid),maxArray(myArr,mid+1,last)));
}
}

关于c++ - 功能模板返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59960637/

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