Очевидно, что имеется несоответствие между сигнатурой, которую dense_hash_map
требует от своей функции хеширования, и сигнатурой, которую MurmurHash2
предоставляет. Вы должны будете выполнить свое собственное «сопоставление импеданса» в собственной функции или функторе, который реализует требуемую подпись и внутренне использует предоставленную. Это, однако, требует способности определять len
, соответствующий данному const char *
, и на это нет очевидного ответа. Планируете ли вы хранить в своей хэш-карте только "массивы символов с нулевым символом в конце", как в старомодных C "псевдостроках", так что strlen
будет достаточно? или что еще ...?
Может быть, лучше использовать std::string
(или какой-то другой недвусмысленный тип C ++ в зависимости от того, чего именно вы пытаетесь достичь!) Вместо этих сомнительных const char *
s, было бы лучшим началом!