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를 사용하여 지정된 문자열을 비교하는 연산자() 함수를 정의합니다. 이렇게 하면 맵 키가 포인터 값이 아닌 문자열 값을 기준으로 비교됩니다. 이 비교 함수를 사용하면 기본 null 종료 문자열을 기반으로 맵을 올바르게 조작할 수 있습니다.
위 내용은 std::map에서 포인터를 키로 올바르게 사용하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!