写一个比较大小的模板函数
时间: 2023-07-20 11:43:30 浏览: 133
好的,以下是一个比较大小的模板函数:
```c++
template <typename T>
T compare(T a, T b) {
return (a > b) ? a : b;
}
```
这个模板函数接受两个参数,类型为 T,返回值也是类型为 T。它会比较这两个参数的大小,并返回较大的那个。在这个函数中,使用了三元运算符 ? : 来实现条件判断,如果 a 大于 b,则返回 a,否则返回 b。
相关问题
写一个可以比较两个不同类型变量大小的模板函数
好的,以下是一个可以比较两个不同类型变量大小的模板函数:
```c++
template <typename T1, typename T2>
bool compare(T1 a, T2 b) {
return (a > b);
}
```
这个模板函数接受两个参数,类型分别为 T1 和 T2,返回值为 bool 类型。它会比较这两个参数的大小,并返回比较结果。在这个函数中,使用了 > 运算符来比较两个参数的大小。由于两个参数的类型可以不相同,因此这个函数可以比较两个不同类型变量的大小。需要注意的是,如果比较的两个类型不能进行大小比较,编译器会报错。
设计一个通用模板函数,能求出数组中的最大元素。函数有两个参数,一个是通用类型数组,另一个是数组大小。用int、doouble、string数组测试这个函数。用c++写
下面是一个求解数组最大值的通用模板函数的实现,它支持int、double和string类型的数组:
```
#include <iostream>
#include <string>
using namespace std;
// 通用模板函数,求解数组中的最大值
template<typename T>
T max_elem(T arr[], int size) {
T max_val = arr[0];
for (int i = 1; i < size; ++i) {
if (arr[i] > max_val) {
max_val = arr[i];
}
}
return max_val;
}
int main() {
// 测试int数组
int int_arr[] = {2, 4, 1, 5, 3};
int int_size = sizeof(int_arr) / sizeof(int);
cout << "int数组最大值:" << max_elem(int_arr, int_size) << endl;
// 测试double数组
double double_arr[] = {1.2, 3.4, 2.5, 4.1, 0.9};
int double_size = sizeof(double_arr) / sizeof(double);
cout << "double数组最大值:" << max_elem(double_arr, double_size) << endl;
// 测试string数组
string str_arr[] = {"hello", "world", "c++", "template", "function"};
int str_size = sizeof(str_arr) / sizeof(string);
cout << "string数组最大值:" << max_elem(str_arr, str_size) << endl;
return 0;
}
```
输出结果如下:
```
int数组最大值:5
double数组最大值:4.1
string数组最大值:world
```
阅读全文