C++ 一对C+的优点是什么+;交换方法?
鉴于 什么时候我真的需要使用C++ 一对C+的优点是什么+;交换方法?,c++,c++11,C++,C++11,鉴于 什么时候我真的需要使用a.swap(b)当有一个更通用的std::swap(a,b)以同样的方式工作。std::swap(a,b)专门用于std::pair内部调用a.swap(b)std::swap()具有许多特定于容器的专门化,因此它可以使用适合容器的方法进行实际交换 如果您正在编写一个特定类型的代码,请考虑直接使用 .Apple(b)< /C> >(或任何适合该类型的方法)。 如果您正在编写针对多种类型的通用代码,请改用std::swap(),让编译器计算出要调用的专门化。我猜std
a.swap(b)
当有一个更通用的std::swap(a,b)
以同样的方式工作。std::swap(a,b)
专门用于std::pair
内部调用a.swap(b)
std::swap()
具有许多特定于容器的专门化,因此它可以使用适合容器的方法进行实际交换
如果您正在编写一个特定类型的代码,请考虑直接使用<代码> .Apple(b)< /C> >(或任何适合该类型的方法)。
如果您正在编写针对多种类型的通用代码,请改用
std::swap()
,让编译器计算出要调用的专门化。我猜std::swap()
是使用std::pair::swap()
实现的。对于通用代码,启用ADL更好,要允许满足可交换概念的任何左值:{using std::swap;swap(a,b);}
auto a = make_pair(1,"one");
auto b = make_pair(2,"two");
a.swap(b);