Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mentakrifkan `
Mentakrifkan Operator '<' untuk Pesanan Lemah Tegas pada Tuple
Untuk n-tuple untuk memenuhi pesanan lemah yang ketat, ia mesti memenuhi kriteria berikut:
Sementara perpustakaan boost menawarkan kelas tuple yang telah ditetapkan dengan operator '<' mematuhi pesanan lemah yang ketat, anda mungkin ingin menentukan operator anda sendiri untuk konteks tertentu.
Berikut ialah cara anda boleh melaksanakan operator '<' secara manual:
struct S { ThingA a; ThingB b; }; bool operator<(S const& lhs, S const& rhs) { return std::make_tuple(lhs.a, lhs.b) < std::make_tuple(rhs.a, rhs.b); }
Dalam contoh ini, kami memanfaatkan fungsi std::make_tuple untuk mencipta tupel daripada elemen individu S tanpa menyalinnya. Kemudian, kami membandingkan tupel menggunakan operator perbandingan tupel generik.
Untuk operator '==', anda boleh mengikuti pendekatan yang serupa:
bool operator==(S const& lhs, S const& rhs) { return std::make_tuple(lhs.a, lhs.b) == std::make_tuple(rhs.a, rhs.b); }
Ingat bahawa pelaksanaan ini menganggap bahawa ThingA dan ThingB mempunyai operator sendiri '<' dan operator '==' ditakrifkan untuk pesanan lemah yang ketat.
Atas ialah kandungan terperinci Bagaimana untuk Mentakrifkan `. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!