为STL算法提供交换函数
要在STL算法中使用自定义交换方法,有几种方法:
会员交换:
免费-常备互换功能:
std::swap 的显式特化:
推荐方法:
推荐方法是在同一命名空间中使用独立的交换函数作为班级。这允许在 STL 算法中调用交换时使用 ADL(参数相关查找)。
示例:
namespace Foo { class Bar{}; // dummy void swap(Bar& lhs, Bar& rhs) { // ... } }
在 STL 算法中使用上述交换函数:
template<class T> void foo(T& lhs, T& rhs) { using std::swap; // enable 'std::swap' to be found // if no other 'swap' is found through ADL // some code ... swap(lhs, rhs); // unqualified call, uses ADL and finds a fitting 'swap' // or falls back on 'std::swap' // more code ... }
以上是如何提供与 STL 算法一起使用的自定义交换函数?的详细内容。更多信息请关注PHP中文网其他相关文章!