В качестве части проекта, над которым я сейчас работаю, мне нужно использовать несколько относительно коротких строк (например, «ABCD1234») в качестве ключей для пользовательского контейнера. Проблема в том, что объекты в этом контейнере имеют тип, чей «первичный ключ», так сказать, является числовым. Поэтому мне нужно взять уникальные строки, предоставленные мне, перевести их в нечто числовое и убедиться, что я сохраню уникальность.Хеширование std :: string для чего-то другого, кроме std :: size_t
Я пытался использовать boost::hash
, и, хотя я думаю, что это сработает, меня раздражает то, насколько велика хеш-ценность, особенно учитывая, что я знаю, что собираюсь начать с коротких строк.
Есть ли другая библиотека, родная или сторонняя, я мог бы использовать? Это, безусловно, удобная вещь, поэтому я не слишком волнуюсь об этом, но подумал, что могу спросить.
Действительно ли это 'size_t' ..? Как это вызовет проблему/проблему? – Sean
Uhm, size_t - 32/64 бит, подписанные значения, на самом деле я не думаю, что есть проблемы с таким спектром возможных решений. – Raistmaj
@Raistmaj 'std :: size_t' is * not * signed. –