Ну, std::strcmp
определяется C ++, когда вы делаете #include <cstring>
. Пример из документа hash_map SGI предоставляет strcmp
пример создания собственной функции проверки равенства для символов char * (цитирование с начала документа SGI):
struct eqstr
{
bool operator()(const char* s1, const char* s2) const
{
return strcmp(s1, s2) == 0;
}
};
Я должен сказать, что я согласен с автором ссылки в вашем посте , где он говорит, что для hash_map<char*>
ошибка по умолчанию использовать hash<char*>
по умолчанию. Но я обычно использую hash_maps (или, в последнее время, boost :: unordered_maps) на C ++ std :: strings для такого рода вещей.