编写一个类模板,可对任意数据类型、任意大小的数组(数组中的成员数据类项相同)求出平均值
时间: 2024-12-12 15:28:40 浏览: 6
在许多编程语言中,特别是那些支持泛型或模板的,你可以创建一个通用的类模板来计算任意数据类型的数组平均值。这里以C++为例来说明:
```cpp
template <typename T>
class ArrayAverageCalculator {
private:
std::vector<T> array; // 存储数组
public:
// 构造函数接受一个数组作为输入
ArrayAverageCalculator(const std::vector<T>& inputArray) : array(inputArray) {}
// 计算并返回数组的平均值
double calculateAverage() const {
if (array.empty()) {
throw std::invalid_argument("数组不能为空");
}
double sum = 0;
for (const auto& value : array) {
sum += value;
}
return sum / array.size();
}
};
// 使用示例
int main() {
std::vector<int> intArray = {1, 2, 3, 4, 5};
ArrayAverageCalculator<int> calculator(intArray);
double averageInts = calculator.calculateAverage();
double floatArray[] = {1.1, 2.2, 3.3, 4.4, 5.5};
ArrayAverageCalculator<double> floatCalculator{floatArray}; // 注意,C++需要将数组转换为std::vector才能传递给模板
double averageFloats = floatCalculator.calculateAverage();
return 0;
}
```
这个模板类`ArrayAverageCalculator`可以接收任何类型`T`的数组,并在其内部提供一个通用的平均值计算方法。注意,由于C++不允许直接传递数组到模板参数中,所以计算double类型的数组时,需要先将其复制到`std::vector<double>`中。
阅读全文