Menyediakan Fungsi Swap untuk Algoritma STL
Untuk mendayakan penggunaan kaedah swap tersuai dalam algoritma STL, terdapat beberapa pendekatan:
Ahli Swap:
Percuma -Fungsi Swap Standing:
Pengkhususan Eksplisit std::swap:
Pendekatan Disyorkan:
Pendekatan yang disyorkan ialah menggunakan fungsi swap berdiri bebas dalam ruang nama yang sama dengan kelas. Ini membenarkan penggunaan ADL (Argument-Dependent Lookup) apabila memanggil swap dalam algoritma STL.
Contoh:
namespace Foo { class Bar{}; // dummy void swap(Bar& lhs, Bar& rhs) { // ... } }
Menggunakan fungsi swap di atas dalam algoritma 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 ... }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyediakan Fungsi Swap Tersuai untuk Digunakan dengan Algoritma STL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!