Описание тега stdhash

None Библиотека C++11 для упрощения хеширования определяемых пользователем типов
1 ответ

Специализировать std::hash<T> для зависимых типов

Я определил эту структуру класса шаблона: template&lt;typename T&gt; struct Outer { struct Inner { /* ...some stuff... */ }; }; Я хочу поставить Inner объекты в unordered_map (на самом деле, не непосредственно их, а контейнеры из них, поэтому подход…
11 авг '14 в 11:47
2 ответа

Использование std:: hash<std:: thread:: id>() (std:: this_thread:: get_id ())

В настоящее время я работаю над созданием приложения C++ для компиляции как в Windows, так и в Linux, во время отладки я обнаружил, что std::this_thread::get_id().hash() не компилируется в Linux с gcc 4.8 (благодаря комментариям в этой теме). Предла…
11 дек '14 в 15:54
1 ответ

Как хэшировать QVariant?

Мне нужно использовать QList&lt;QVariant&gt; как ключ к std::unordered_map, Целью этого является оптимизация поиска по таблице данных путем создания индекса по столбцам уникальных ключей. Итак, я сделал этот код. Это не полный, но перечисляет некото…
14 дек '16 в 14:25
3 ответа

Можно ли использовать std::hash для хеширования указателей на функции?

Может ли C++11 std::hash тип будет использоваться для хеширования указателей на функции? E сть hash частичная специализация определяется как template &lt;typename T&gt; struct hash&lt;T*&gt;; но поскольку указатели на функции отличаются от других ти…
01 ноя '13 в 02:54
1 ответ

Почему этот код обеспечивает специализацию для перечислений **ALL** для шаблона std::hash?

Я не профессионал в C++, но каким-то образом я предоставил решение, портируя мой код MSVS 2015 C++ на MinGW 4.9.2, чтобы специализироваться std::hash класс, чтобы поддержать всех enums. Если здесь есть разработчики компиляторов C++ или программисты …
23 июл '16 в 00:34
2 ответа

std::hash вариации объекта с произвольным количеством атрибутов фундаментального типа

Обсуждение: Допустим, у меня есть struct/class с произвольным количеством атрибутов, которые я хочу использовать в качестве ключа к std::unordered_map например,: struct Foo { int i; double d; char c; bool b; }; Я знаю, что для этого я должен определ…
25 май '16 в 09:48
2 ответа

Частичная специализация std::hash для константных и неконстантных типов

У меня проблемы с некоторым кодом, выполняющим частичную специализацию std::hash для одного из моих классов. Вот отдельный пример. РЕДАКТИРОВАТЬ: Спасибо Петр, я изменил код, чтобы включить исправления, но ошибка остается. #include &lt;functional&gt…
02 сен '14 в 14:10
1 ответ

Мой std::hash для std::tuples... Есть улучшения?

Некоторые, возможно, заметили, что std::hash не поддерживает кортежи. Поэтому я добавил перегрузку, которая кажется "более приятной", чем решение, которое я видел до сих пор. У кого-нибудь есть идеи по дальнейшему сокращению этого кода? Обратите вни…
27 фев '13 в 04:02
2 ответа

C++11: Существуют ли причины, по которым некоторые регулярные типы не должны специализировать `std::hash`?

Под Регулярным типом я подразумеваю определение Степанова в Элементах Программирования, в основном, что есть понятие равенства и что объекты, которые являются копиями друг друга, сравниваются равными. Поэтому, когда у вас есть обычный тип T и отноше…
30 апр '15 в 13:40
1 ответ

Создать фиксированный размер хэша

Я использую std::hash в утилите cpp для генерации хеша для строки. Мое требование - создать хэш фиксированного размера из 11 цифр. Хеш-функция не обязательно должна быть великолепной, чтобы никогда не иметь конфликтов. Единственное требование, котор…
28 фев '18 в 10:03
1 ответ

Проблема с неверным использованием неполного типа при использовании std::tuple_element

Следующий код реализует хеш-функцию для std::tuple который затем используется в другом сегменте моей кодовой базы в std::unordered_map из std::tuples. // compute hash function recursively through each std::tuple element template&lt;class Tuple, std:…
31 авг '16 в 17:26
3 ответа

Почему std::hash<T> не специализирован для char*?

Почему в стандарте C++ не указано, что std::hash&lt;T&gt; специализируется на char*, const char*, unsigned char*, const unsigned char*, так далее? То есть, он хэширует содержимое строки C, пока не будет найден завершающий ноль. Любой вред при введен…
16 апр '13 в 18:34
2 ответа

Могу ли я переопределить std::hash?

Я могу заменить фактическую реализацию std::hash с моим собственным определением std::hash в С ++ 11? Я имею в виду из моей кодовой базы, не касаясь стандартной библиотеки. Я не вижу никакой пользы для виртуальной функции / полиморфизма в этом случа…
06 авг '13 в 11:29
1 ответ

unordered_map::find с ключом std:: пара указателей с пользовательскими хэш-сбоями в VS2012

Мне нужен был std::unordered_map с ключом std::pair&lt;T*, T*&gt; поэтому я "украл" следующий код: template &lt;class T&gt; inline void hash_combine(std::size_t &amp; seed, const T &amp; v) { std::hash&lt;T&gt; hasher; seed ^= hasher(v) + 0x9e3779b9…
3 ответа

Является ли std::hash одинаковым во всех дистрибутивах stdlib?

Если бы я сделал std::hash с помощью libstdc++ а затем сделал один на предстоящем C++11 Библиотека VS 2012 - будут ли они соответствовать? Я предполагаю, что хэш-реализации не являются частью спецификации C++ и могут варьироваться в зависимости от р…
16 авг '12 в 15:38
2 ответа

Почему std::hash структура вместо функции?

Стандартная библиотека реализует std:: hash как шаблонную структуру, которая специализируется для разных типов. Используется так: #include &lt;iostream&gt; #include &lt;functional&gt; int main() { std::hash&lt;int&gt; hasher; std::cout &lt;&lt; hash…
24 ноя '13 в 19:20
1 ответ

Специализация std::hash для шаблонного ключа

Я пытался специализировать хеш для своего собственного типа, шаблонного ключа. Я основывал это на cppreference. Я получаю ошибку компиляции "Стандарт C++ не предоставляет хэш для этого типа". Я полагаю, я просто сделал это неправильно. Может ли комп…
27 апр '15 в 10:23
1 ответ

Какова цель std::hash и / или boost::hash?

Зачем предоставлять хеш-функцию без указания какой-либо реализации ссылки, а также без указания алгоритма ссылки ( md5, sha256 и т. Д. И т. Д.)? Также есть аналогичные функции для структур данных, такие как стандарт C++, совместимый std::unordered_m…
24 дек '12 в 06:06
1 ответ

Сравнение скорости C++11 / стоимость std::hash<std::string>, равный std::string, равный непосредственно для 2 больших строк

Привет, у меня есть вопрос о std::hash, если у меня есть 2 большие строки для сравнения, и я согласен с тем, что std::hash будет сравниваться в большинстве случаев, если он более совместим с производительностью, чтобы сделать что-то вроде следующего…
26 июл '13 в 17:07
1 ответ

Как специализировать std::hash для типа из другой библиотеки

Таким образом, библиотека, которую я использую, имеет enum (скажем, она называется LibEnum). Мне нужно иметь std::unordered_set из LibEnum, но я получаю ошибку компиляции, что нет специализированного std::hash для этого. Я мог бы легко написать это …
11 фев '13 в 14:23