【发布时间】:2023-04-03 11:25:02
【问题描述】:
所以我被要求创建一个具有名称的模板函数,它必须接受两个 T 对象,然后我必须将参数定义为对这些 T 对象的常量引用,并且它必须返回较小的二。我想看看我是否有一个正确的开始,因为这是我第一次使用模板。
template<class T1, class T2>
T1 minimum(const T1, int size)
{
【问题讨论】:
标签: c++
所以我被要求创建一个具有名称的模板函数,它必须接受两个 T 对象,然后我必须将参数定义为对这些 T 对象的常量引用,并且它必须返回较小的二。我想看看我是否有一个正确的开始,因为这是我第一次使用模板。
template<class T1, class T2>
T1 minimum(const T1, int size)
{
【问题讨论】:
标签: c++
template <class T1, class T2>
T1 minimum(const T1, int size)
这是一个模板化函数,它接受两个参数:第一个是T1 类型,第二个始终是int。这个函数将返回一个T1。模板参数T2 未使用,可能会导致模板推理出现问题。至少,为了有用,这个函数应该写成
template <class T>
T minimum(T arg, int size)
但是,您的提示要求 两个 T 参考参数。它没有说要接受int。所以,相反,我可能会推荐类似的东西
template <class T>
T minimum(const T& arg1, const T& arg2)
现在你有两个参数。看看能不能弄清楚函数体怎么写。
【讨论】:
SO 上的人们喜欢家庭作业问题,所以,我们很乐意提供帮助。
阅读需求然后设计实现总是一个很好的起点。
来自
创建一个具有名称的模板函数,它必须接受两个 T 对象,然后我必须将参数定义为对这些 T 对象的常量引用,并且它必须返回两者中较小的一个。
我们可以分成几部分:
从 1 开始:
template <class T>
从 2 开始:
template <class T>
something function(something)
从 3 开始:
template <class T>
something function(T parameter1, T parameter2)
从 4 开始:
template <class T>
something function(const T& parameter1, const T& parameter2)
从 5 开始:
template <class T>
T function(const T& parameter1, const T& parameter2) {
T smallerOfTheTwo;
if (parameter1 < parameter2)
smallerOfTheTwo = parameter1;
if (parameter2 < parameter1)
smallerOfTheTwo = parameter2;
if (parameter2 == parameter1)
smallerOfTheTwo = parameter1;
return smallerOfTheTwo;
}
如果两个输入值相等,我们应该做什么没有规范。我们假设,我们可以返回其中任何一个。
【讨论】: