template< class T1, class T2 >
class Pair {
T1 first;
T2 second;
};
我被要求编写一个 swap() 方法,以便第一个元素成为第二个元素,第二个元素成为第一个元素。我有:
Pair<T2,T1> swap() {
return Pair<T2,T1>(second, first);
}
但这会返回一个新对象而不是交换,我认为它需要是一个更改自己的数据成员的 void 方法。由于 T1 和 T2 可能是不同的类类型,这可能吗?换句话说,我不能简单地设置 temp=first, first=second, second=temp 因为它会尝试将它们转换为不同的类型。我不确定为什么您可能希望拥有一个更改其类型顺序的模板对象,因为这似乎会引起混淆,但这似乎是我被要求做的事情。
编辑:谢谢大家的回答!和我想的差不多,就地交换显然没有任何意义,swap() 函数的请求非常模棱两可。