Menggunakan Penunjuk sebagai Kekunci dalam std::map
Apabila menggunakan penunjuk sebagai kunci dalam std::map, adalah penting untuk menentukan fungsi perbandingan untuk membolehkan perbandingan berdasarkan nilai runcing dan bukannya penunjuk sendiri.
Masalah:
Dalam coretan kod yang disediakan, anda menggunakan std::map
Penyelesaian:
Untuk menyelesaikan masalah ini, gunakan fungsi perbandingan yang membandingkan rentetan yang ditamatkan nol yang ditunjuk oleh kekunci char*. Berikut ialah contoh:
struct cmp_str { bool operator()(char const *a, char const *b) const { return std::strcmp(a, b) < 0; } }; std::map<char *, int, cmp_str> g_PlayerNames;
Dalam contoh ini, struct cmp_str mentakrifkan fungsi operator() yang membandingkan rentetan runcing menggunakan std::strcmp. Ini memastikan bahawa kunci peta dibandingkan berdasarkan nilai rentetannya, bukan nilai penudingnya. Dengan menggunakan fungsi perbandingan ini, anda boleh memanipulasi peta dengan betul berdasarkan rentetan penamatan nol asas.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Penunjuk sebagai Kekunci dalam std::map dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!