更喜欢std :: swap而不是容器的swap()?

时间:2018-07-24 07:12:55

标签: c++

如果Coll是标准容器类型,则abColl的实例;那么,我们是否应该始终使用std::swap(a, b)而不是a.swap(b)

对我来说,std::swap(a, b)a.swap(b)更通用。但是,我只是想知道,这是否是最佳做法?还是任何反例?

1 个答案:

答案 0 :(得分:2)

当有成员交换功能可用时,最好使用它。如果它除了复制默认的std::swap实现之外什么也没做,为什么它应该首先存在?

除此之外,我将区分标准容器和其他容器。在前一种情况下,std::swap专门为您的容器实例做正确的事情。在后一种情况下,请使用成员交换功能。