Описание тега stdhash
None Библиотека C++11 для упрощения хеширования определяемых пользователем типов
1
ответ
Специализировать std::hash<T> для зависимых типов
Я определил эту структуру класса шаблона: template<typename T> 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<QVariant> как ключ к std::unordered_map, Целью этого является оптимизация поиска по таблице данных путем создания индекса по столбцам уникальных ключей. Итак, я сделал этот код. Это не полный, но перечисляет некото…
14 дек '16 в 14:25
3
ответа
Можно ли использовать std::hash для хеширования указателей на функции?
Может ли C++11 std::hash тип будет использоваться для хеширования указателей на функции? E сть hash частичная специализация определяется как template <typename T> struct hash<T*>; но поскольку указатели на функции отличаются от других ти…
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 <functional>…
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<class Tuple, std:…
31 авг '16 в 17:26
3
ответа
Почему std::hash<T> не специализирован для char*?
Почему в стандарте C++ не указано, что std::hash<T> специализируется на 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<T*, T*> поэтому я "украл" следующий код: template <class T> inline void hash_combine(std::size_t & seed, const T & v) { std::hash<T> hasher; seed ^= hasher(v) + 0x9e3779b9…
23 июн '15 в 14:00
3
ответа
Является ли std::hash одинаковым во всех дистрибутивах stdlib?
Если бы я сделал std::hash с помощью libstdc++ а затем сделал один на предстоящем C++11 Библиотека VS 2012 - будут ли они соответствовать? Я предполагаю, что хэш-реализации не являются частью спецификации C++ и могут варьироваться в зависимости от р…
16 авг '12 в 15:38
2
ответа
Почему std::hash структура вместо функции?
Стандартная библиотека реализует std:: hash как шаблонную структуру, которая специализируется для разных типов. Используется так: #include <iostream> #include <functional> int main() { std::hash<int> hasher; std::cout << 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