Эффективное хеширование `std::bitset` или`boost::dynamic_bitset<>`для неупорядоченных контейнеров Boost

Мне интересно, есть ли какой-нибудь эффективный способ хеширования std::bitset или же boost::dynamic_bitset<> для неупорядоченных контейнеров Boost?

Я сейчас конвертирую std::bitset или же boost::dynamic_bitset<> в std::string сначала, прежде чем хэшировать их, но, похоже, это будет медленно.

Есть ли какой-нибудь лучший способ?

1 ответ

Решение

C++11 требует, чтобы стандартная библиотека имела std::hash<std::bitset> специализированные. Я должен уже иметь хэш.

Для повышения вы должны использовать config: #define BOOST_DYNAMIC_BITSET_DONT_USE_FRIENDS тогда dynamic_bitset::m_bits член становится публичным, и вы можете сделать хэш на нем.

Другие вопросы по тегам