【发布时间】:2020-10-29 10:04:54
【问题描述】:
我有以下代码,我需要返回具有特定最小元素的对象。我需要使用 std::greater 和 std::less。代码正在运行,但这不是我想要的。我想让x3 同时拥有x 和y 结构中的最小x。
#include <iostream>
using namespace std;
struct X {
int x;
int y ;
};
class A {
public:
A(){}
template<typename T>
static X getValue(const X&x1,const X&x2) {
X x3;
x3.x = std::min(x1.x, x2.x,T());
return x3;
// x3 = std::min(x1.x, x2.x,T()); Wont work for sure.
}
};
int main()
{
X x1;
x1.x = 10;
X x2;
x2.x = 20;
cout<<A::getValue<std::less<int>>(x1,x2).x << std::endl;
cout<<A::getValue<std::less<int>>(x1,x2).y << std::endl;
return 0;
}
【问题讨论】:
-
一定要用
std::min吗?似乎if就足够了。 -
我需要使用模板。如果使用模板怎么办?