我想知道是否有一些有效的方法可以为Boost的无序容器散列std::bitset
或boost::dynamic_bitset<>
?
我目前正在将std::bitset
或boost::dynamic_bitset<>
转换为std::string
,然后再对它们进行哈希处理,但这似乎会很慢。
有更好的方法吗?
答案 0 :(得分:4)
C ++ 11要求标准库具有std::hash<std::bitset>
专用。它应该已经哈希了。
对于提升,您应该使用config:#define BOOST_DYNAMIC_BITSET_DONT_USE_FRIENDS
然后dynamic_bitset::m_bits
成员变为公共成员,并且您可以对其进行哈希。