STL 알고리즘에 대한 스왑 기능 제공
STL 알고리즘에서 사용자 정의 스왑 방법을 사용하려면 다음과 같은 몇 가지 접근 방식이 있습니다.
회원 스왑:
무료 -스탠딩 스왑 기능:
std::swap의 명시적 특수화:
권장 접근 방식:
권장 접근 방식은 클래스와 동일한 네임스페이스. 이를 통해 STL 알고리즘 내에서 스왑을 호출할 때 ADL(Argument-Dependent Lookup)을 사용할 수 있습니다.
예:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!