void mini(C &a4, C b4) { a4 = min(a4, b4); }"定义是什么意思?-6ren"> void mini(C &a4, C b4) { a4 = min(a4, b4); }"定义是什么意思?-我无法理解这条快捷方式的含义。甚至还看不懂这里用的是什么。提前致谢。 我正在理解其他人的代码,但我四处搜索但没有得到它。 template void mini(C &a4, C b4) { a4 = -6ren">
gpt4 book ai didi

c++ - "template void mini(C &a4, C b4) { a4 = min(a4, b4); }"定义是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-04 15:30:05 25 4
gpt4 key购买 nike

我无法理解这条快捷方式的含义。甚至还看不懂这里用的是什么。提前致谢。

我正在理解其他人的代码,但我四处搜索但没有得到它。

template<class C> void mini(C &a4, C b4) { a4 = min(a4, b4); }
template<class C> void maxi(C &a4, C b4) { a4 = max(a4, b4); }

最佳答案

作为 this tutorial 解释说,这是一个函数模板。函数模板定义的一般形式如下所示:

template <class type> ret-type func-name(parameter list) {
// body of function
}

这些函数模板中使用的 minmax 宏定义为:

#define min(a,b)            (((a) < (b)) ? (a) : (b))
#define max(a,b) (((a) > (b)) ? (a) : (b))

所以在这些函数模板中,检测a4b4之间的最小和最大数,然后在C &a4中返回:

template<class C> void mini(C &a4, C b4)
{
a4 = min(a4, b4);
}

template<class C> void maxi(C &a4, C b4)
{
a4 = max(a4, b4);
}

在这个例子中,我用 intfloat 数据类型(函数模板中的 class C)定义了它:

int main()
{
int i1 = 1;
int i2 = 2;

float f1 = 12.5;
float f2 = 12.4;

mini<int>(i1, i2);
maxi<float>(f2, f1);

std::cout << i1 << ", " << i2 << ", " << f1 << ", " << f2 << std::endl;

return 0;
}

结果是:

1, 2, 12.5, 12.5

注意: minmx 宏定义在 windows.h 文件默认....但这些宏很简单,您可以自己定义它们而不是使用 Windows 头文件。我建议使用适用于 c++ 的 std::minstd::max

关于c++ - "template<class C> void mini(C &a4, C b4) { a4 = min(a4, b4); }"定义是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56412616/

25 4 0