设计一个类模板,可用于T类型的数组,且定义成员函数: (1)求所有元素的和 (2)查找指定元素是否存在,如果存在,则返回其所在数组元素的下标值,否则返回-1
时间: 2024-03-09 09:49:23 浏览: 70
快速查找数组中的某个元素并返回下标示例
可以使用以下类模板来实现上述功能:
```c++
template <typename T, int size>
class Array {
private:
T arr[size];
public:
// 构造函数
Array() {
// 初始化数组元素
for (int i = 0; i < size; ++i) {
arr[i] = T();
}
}
// 获取数组大小
int getSize() const {
return size;
}
// 获取指定位置的元素
T& operator[](int index) {
return arr[index];
}
// 获取指定位置的元素(const版本)
const T& operator[](int index) const {
return arr[index];
}
// 求所有元素的和
T sum() const {
T result = T();
for (int i = 0; i < size; ++i) {
result += arr[i];
}
return result;
}
// 查找指定元素是否存在,如果存在,则返回其所在数组元素的下标值,否则返回-1
int find(const T& value) const {
for (int i = 0; i < size; ++i) {
if (arr[i] == value) {
return i;
}
}
return -1;
}
};
```
在这个示例中,我们添加了两个成员函数:`sum` 和 `find`。`sum` 函数用于计算数组所有元素的和,`find` 函数用于查找指定元素在数组中的位置。注意,在比较元素是否相等时,我们使用了 `==` 运算符,因此需要保证 `T` 类型支持该运算符的重载。
阅读全文