有效地使用char* 作為std::map 鍵
在C 中,使用char* 作為std::map 中的鍵可以構成挑戰。考慮以下嘗試尋找未使用的玩家名稱的程式碼片段:
此程式碼可能無法如預期執行,因為std::map 中char* 的預設比較是比較指標本身,而不是實際的指標它們指向的以null 結尾的字串。
解
要解決此問題,您必須為地圖提供比較函子。該函子應該比較 char* 鍵指向的字串。以下是一個範例:
透過合併 cmp_str 函子,映射現在會比較實際的字串,從而允許預期的邏輯正確運作。
請記住,此技術適用於以下情況的任何場景:您打算使用指標作為 std::map 中的鍵。透過提供比較函子,您可以確保映射按需要運行,比較指標表示的實際值。
以上是如何在 C `std::map` 中有效地使用 `char*` 作為鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!