Гарантирует ли std :: hash одинаковое значение хэша для двух равных значений потенциально разных типов?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Гарантирует ли std :: hash одинаковое значение хэша для двух равных значений потенциально разных типов?

Сообщение Anonymous »

Стандартная гарантия того, что стандартная библиотека std :: hash специализации производят идентичные хэши для значений, которые сравнивают равные, даже если они имеют разные типы? Например, будут ли следующие два всегда производить одно и то же значение? < /P>

Код: Выделить всё

std::hash{}(1);
std::hash{}(1);
< /code>

Контекст для моего вопроса: я использую хэш -класс, который позволяет прозрачно искать изоморфные типы кортежей, например, с учетом безподобного_мапа, как SO: < /p>
std::unordered_map
Я могу сделать поиск на нем с помощью std :: tuple . Реализация просто использует STD :: HASH на каждом элементе и объединяет хэши вместе. В этом случае, если мне дают std :: tuple , мне интересно, могу ли я предположить, что хэш этого даст один и тот же выход, если каждый элемент кортежа сравнится равным.

Подробнее здесь: https://stackoverflow.com/questions/795 ... otentially
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»