std::swap()在排序甚至分配期间被许多std容器(例如std::list和std::vector)使用.
std::swap()
std::list
std::vector
但是std实现swap()非常普遍,而且对于自定义类型来说效率很低.
swap()
因此,通过std::swap()使用自定义类型特定实现进行重载可以获得效率.但是如何实现它以便std容器使用它?
c++ optimization performance stl c++-faq
最近,许多 问题 弹出如何提供自己的swap功能.使用C++ 11,std::swap将使用std::move和移动语义以尽可能快地交换给定值.当然,这仅适用于提供移动构造函数和移动赋值运算符(或使用按值传递的运算符)的情况.
swap
std::swap
std::move
现在,有了这个,是否真的有必要swap在C++ 11中编写自己的函数?我只能想到不可移动的类型,但是再一次,自定义swaps通常通过某种"指针交换"(也就是移动)来工作.也许有某些参考变量?嗯...
c++ swap obsolete move-semantics c++11
c++ ×2
c++-faq ×1
c++11 ×1
move-semantics ×1
obsolete ×1
optimization ×1
performance ×1
stl ×1
swap ×1