首页 > 解决方案 > 如何在 C++ 中返回模板数组

问题描述

sortedArray – 接受:一个数组,它的大小,布尔变量升序,布尔变量 inPlace。

然后它将返回排序后的数组。

如果ascending = false,则数组将按降序排序。

如果 inPlace = false,则不会更改原始数组。

(为了对数组进行排序,我使用函数 sort。如果需要,我使用函数 reverseArray)。

n 是数组 arr[] 的大小。

template<class T>
T* sortedArray(T arr[], int n,bool asc,bool inplc) 
{ 
if(inplc)
    {
    sort(arr,arr+n);
    return arr;
    }
else if (inplc&&!asc)
    {
    sort(arr,arr+n);
    reverse(arr,arr+n);
    return arr;
    }
else if (!inplc&&asc)
    {
    T* arr1=new T[n];
    for(int i=0; i<n;i++)
        {
        arr1[i]=arr[i];
        }
    sort(arr1,arr1+n);
    return arr1;
    }
else 
    {
    T* arr1=new T[n];
    for(int i=0; i<n;i++)
        {
        arr1[i]=arr[i];
        }
    sort(arr1,arr1+n);
    reverse(arr1,arr1+n);
    return arr1;        
    }
} 

错误已修复。

标签: c++arraystemplates

解决方案


推荐阅读