模板函数返回类型

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

我在C ++中很陌生。我正在做一个学校作业,该作业需要使用模板函数来查找数组的最大值。在将其更改为模板功能之前,该代码似乎可以正常使用。我收到一条错误消息,指出maxcpp.cpp:9:16:错误:间接需要指针操作数('int'无效)返回* 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;
}

我在C ++中很陌生。我正在做一个学校作业,该作业需要使用模板函数来查找数组的最大值。该代码似乎可以正常使用,直到我对其进行了更改...

c++
1个回答
0
投票

[T maxArray(T myArr, int first, int last)替换为int maxArray(T myArr, int first, int last)将返回类型更改为“ int”,它将起作用。输出将是:20

© www.soinside.com 2019 - 2024. All rights reserved.