如果Coll
是标准容器类型,则a
和b
是Coll
的实例;那么,我们是否应该始终使用std::swap(a, b)
而不是a.swap(b)
?
对我来说,std::swap(a, b)
比a.swap(b)
更通用。但是,我只是想知道,这是否是最佳做法?还是任何反例?
答案 0 :(得分:2)
当有成员交换功能可用时,最好使用它。如果它除了复制默认的std::swap
实现之外什么也没做,为什么它应该首先存在?
除此之外,我将区分标准容器和其他容器。在前一种情况下,std::swap
专门为您的容器实例做正确的事情。在后一种情况下,请使用成员交换功能。