gpt4 book ai didi

c++ - 如何让我的模板只需要绝对必要的功能

转载 作者:行者123 更新时间:2023-11-28 05:39:23 29 4
gpt4 key购买 nike

抱歉,这里有新发帖人,我真的不能很好地表达我的问题。也提前为任何违反礼仪的行为道歉。我正在对一个类进行模板化。我通过了两个测试,但我没有通过第三个测试:这个类提供了一组最小的操作,并且, 这样,代表测试您的 MiniMax 类是否 需要其数据支持比绝对更多的功能 必要的。

template <class Data>
void MiniMax<Data>::observe (const Data& t)
{
if (count == 0)
min = max = t;
else
{
if (t < min)
min = t;
if (t > max)
max = t;
}
++count;
}

它在编译期间在 if(t>max) 行失败 with no match for operator>。如何更改我的模板,使其不需要 > 在用户定义的类中实现?在此作业中,我只能编辑模板,不能编辑任何测试驱动程序。

最佳答案

正如@Anthony Sottile 在评论中所说,最简单的方法是切换操作数的位置并更改运算符,更改 t > maxmax < t .这会重用运算符并仍然做同样的事情。

更改后您的代码将如下所示:

if (count == 0)
min = max = t;
else
{
if (t < min)
min = t;
if (max < t) // <-- Difference Here
max = t;
}
++count;

关于c++ - 如何让我的模板只需要绝对必要的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37503775/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com