如何重载std:swp()std::swap()由许多std容器使用(如std::list和std::vector)在排序甚至分配过程中。但性病的实施swap()对于自定义类型来说是非常普遍的和相当低效的。因此,过载可以提高效率。std::swap()具有特定于自定义类型的实现。但是如何实现它,以便STD容器能够使用它呢?
3 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
class X{ // ... friend void swap(X& a, X& b) { using std::swap; // bring in swap for built-in types swap(a.base1, b.base1); swap(a.base2, b.base2); // ... swap(a.member1, b.member1); swap(a.member2, b.member2); // ... }};
FFIVE
TA贡献1797条经验 获得超6个赞
namespace std{ template<> void swap(my_type& lhs, my_type& rhs) { // ... blah }}
class Base{ // ... stuff ...}class Derived : public Base{ // ... stuff ...}namespace std{ template<> void swap(Base& lha, Base& rhs) { // ... }}
- 3 回答
- 0 关注
- 303 浏览
添加回答
举报
0/150
提交
取消