generic hash function для кортежей в неупорядоченных коллекциях
. Чтобы исправить это, один подход - это вручную определить функцию HASH для конкретного типа корзины, такой как:
шаблон шаблон struct std :: hash
template struct std::hash<:tuple int>> { size_t operator()(std::tuple. Хотя этот подход работает, он может быть утомительным определять хэш -функции для каждого используемого типа кортежа. Чтобы автоматизировать это, общая хэш -функция может быть реализована следующим образом:const& tuple) const { ... } };
#включить
template struct std::hash<:tuple int>> { size_t operator()(std::tupleЭта функция использует, зависящий от аргумента, имени имени (ADL), чтобы позволить компилятору автоматически выбирать правильную реализацию хэш на основе типа Tuple.const& tuple) const { ... } };
стандартное согласованное решение
это стоит отметить, что непревзойденные функции в STDININEPACE. Для соответствия стандартам решение может быть создано и используется пользовательское пространство имен и используется для определения хэш-функции:пространство имен MY_HASH { // Пыряйте типы не тупе в std :: hash Шаблон
template struct std::hash<:tuple int>> { size_t operator()(std::tupleпри использовании этого решения неупорядоченная коллекция должна явно ссылаться на пользовательскую хеш -реализацию следующим образом:const& tuple) const { ... } };
unoromeded_set , std :: hash
]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3