定义一个Array类模板

定义一个Array类模板,其中的数据成员是一个具有5个元素的一维数组,类中包含构造函数和一个找最大值的函数。通过这个类模板可以分别查找int、double、string类型一维数组中的最大值。要求写出主函数,测试这个类模板的正确性。

下面是一个Array类模板及其测试代码的示例:

#include<iostream>
using namespace std;

template <typename T>
class Array {
private:
    T data[5];
public:
    Array(T arr[]) {
        for (int i = 0; i < 5; i++) {
            data[i] = arr[i];
        }
    }

    T maxval() {
        T maxv = data[0];
        for (int i = 1; i < 5; i++) {
            if (data[i] > maxv) {
                maxv = data[i];
            }
        }
        return maxv;
    }
};

int main() {
    int arrInt[] = { 3, 2, 5, 4, 1 };
    double arrDouble[] = { 4.5, 3.2, 7.8, 1.2, 5.9 };
    string arrString[] = { "apple", "banana", "orange", "lemon", "watermelon" };

    Array<int> arr1(arrInt);
    Array<double> arr2(arrDouble);
    Array<string> arr3(arrString);

    cout << "Max value of int array: " << arr1.maxval() << endl;
    cout << "Max value of double array: " << arr2.maxval() << endl;
    cout << "Max value of string array: " << arr3.maxval() << endl;

    return 0;
}

在上述代码中,我们定义了一个名为Array的类模板,用于包装一个具有5个元素的一维数组。该类模板包含了一个构造函数,可以接受任何类型的一维数组,并将其存储在data数组中。此外,该类还包含了一个maxval函数,用于查找存储在data数组中的相应类型数据的最大值。

在main函数中,我们定义了三个不同类型的一维数组,并使用Array模板创建了三个Array对象arr1、arr2和arr3。然后,我们分别调用这些对象的maxval函数,以获得int、double和string数组中的最大值,并将结果打印在屏幕上。

注意,在测试这个Array类模板的正确性时,需要传递每个类型的正确数组到构造函数中,并检查maxval函数返回的结果是否与预期相符。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^