对不起这里的新海报,真的无法解释我的问题。也提前为礼仪中的任何违规行为道歉。我正在研究课堂上的模板化。我对它进行了两次测试,但是我没有通过第三次测试:这个类提供了一组最小的操作,as 这样,代表了你的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)
行没有匹配运营商&gt;在编译期间。如何更改模板以使其不需要&gt;要在用户定义的类中实现?在此作业中,我只能编辑模板而不能编辑任何测试驱动程序。
答案 0 :(得分:1)
正如@Anthony Sottile在评论中所说,最简单的方法是切换操作数的位置并更改运算符,将t > max
更改为max < t
。这会重复使用运算符并仍然执行相同的操作。
更改后,您的代码将如下所示:
if (count == 0)
min = max = t;
else
{
if (t < min)
min = t;
if (max < t) // <-- Difference Here
max = t;
}
++count;