Rumah >pembangunan bahagian belakang >C++ >Bagaimana Menentukan Susunan Lemah yang Tegas `
Mentakrifkan Operator < untuk Pesanan Lemah Tegas pada n-tuple
Soalan:
Bagaimana untuk melaksanakan < operator untuk n-tuple (cth., 3-tuple) yang mematuhi konsep pesanan lemah yang ketat?
Jawapan:
Memahami Susunan Lemah Tegas
Penyusunan lemah yang ketat ialah hubungan matematik yang mentakrifkan perbandingan khusus antara dua objek:
Melaksanakan < Operator
Untuk menentukan < pengendali untuk n-tuple, anda mesti menetapkan syarat yang menentukan apabila satu tuple dianggap setara atau kurang daripada yang lain. Ini bergantung pada struktur data khusus dan semantik tupel anda.
Contoh dengan std::tuple
Kelas std::tuple C Standard Library melaksanakan yang betul < operator untuk pesanan lemah yang ketat. Jika anda tidak dapat menggunakan kelas ini, anda boleh melaksanakan < anda sendiri secara manual; operator:
struct S { ThingA a; ThingB b; }; bool operator<(S const& lhs, S const& rhs) { return std::tie(lhs.a, lhs.b) < std::tie(rhs.a, rhs.b); }
Ini mengandaikan bahawa ThingA dan ThingB sudah melaksanakan pesanan lemah yang ketat.
Anda juga boleh melaksanakan kesaksamaan menggunakan pendekatan yang serupa:
bool operator==(S const& lhs, S const& rhs) { return std::tie(lhs.a, lhs.b) == std::tie(rhs.a, rhs.b); }
Atas ialah kandungan terperinci Bagaimana Menentukan Susunan Lemah yang Tegas `. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!