函数模板求数组数中的最大值
时间: 2023-09-12 16:06:32 浏览: 175
判断数组的最大值
3星 · 编辑精心推荐
可以使用以下的函数模板来求取数组中的最大值:
```cpp
template<typename T, size_t N>
T max_array(T (&arr)[N]) {
T max_val = arr[0];
for(size_t i=1; i<N; ++i) {
if(arr[i] > max_val) {
max_val = arr[i];
}
}
return max_val;
}
```
其中,函数模板接受一个类型为T、大小为N的数组的引用,并返回数组中的最大值。函数模板中使用了模板的两个参数,T 表示数组中元素的类型,N 表示数组的大小。在函数内部,使用一个 for 循环来遍历数组中的元素,不断更新最大值,最终返回最大值。
使用示例:
```cpp
int arr[] = {1, 2, 3, 4, 5};
int max_val = max_array(arr);
std::cout << max_val << std::endl; // 输出 5
```
需要注意的是,函数模板的参数推导规则可以让我们在调用函数时省略模板参数,编译器会自动推导出模板参数的类型和大小。因此,我们可以直接传递一个数组给函数模板,而不用显式指定模板参数。
阅读全文