使用指針作為 std::map 中的鍵
當使用指針作為 std::map中的鍵時,指定一個比較函子,用於基於指向的值而不是指針進行比較
問題:
在提供的程式碼片段中,您使用的是std::map
解決方案:
要解決此問題,請使用比較函數來比較 char* 鍵指向的以 null 結尾的字串。以下是範例:
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;
在此範例中,cmp_str 結構定義了一個使用 std::strcmp 比較指向字串的operator() 函式。這確保了映射鍵是根據其字串值而不是指標值進行比較的。透過使用此比較函子,您可以根據底層空終止字串正確操作映射。
以上是如何正確使用指標作為 std::map 中的鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!