C++类的自定义swap为什么还是用的swap()?
void swap(Hasptr &lhs, Hasptr &rhs)
{
using std::swap;
swap(lhs.ps, rhs.ps);
swap(lhs.i, lhs.i);
}
这个函数体中的swap()是std的吗?
自定义类swap函数似乎根本没定义交换操作嘛?
C++类的自定义swap为什么还是用的swap()?
void swap(Hasptr &lhs, Hasptr &rhs)
{
using std::swap;
swap(lhs.ps, rhs.ps);
swap(lhs.i, lhs.i);
}
这个函数体中的swap()是std的吗?
自定义类swap函数似乎根本没定义交换操作嘛?
1.自定义swap的实现和系统swap已经不一样了
系统swap只能交换两个值类型,而自定义swap可以交换两个struct
现在看似乎区别不大,就从2行代码变成1行代码,没节省多少代码
但是如果你的struct里不是2个属性而是20个属性呢?
2.该复用系统函数的地方就放手去调用,不要为了封装而封装,不要重复造轮子