为Boost的无序容器高效散列`std :: bitset`或`boost :: dynamic_bitset<>`

时间:2012-09-07 08:50:34

标签: c++ hash bitset boost-dynamic-bitset boost-unordered

我想知道是否有一些有效的方法可以为Boost的无序容器散列std::bitsetboost::dynamic_bitset<>

我目前正在将std::bitsetboost::dynamic_bitset<>转换为std::string,然后再对它们进行哈希处理,但这似乎会很慢。

有更好的方法吗?

1 个答案:

答案 0 :(得分:4)

C ++ 11要求标准库具有std::hash<std::bitset>专用。它应该已经哈希了。

对于提升,您应该使用config:#define BOOST_DYNAMIC_BITSET_DONT_USE_FRIENDS然后dynamic_bitset::m_bits成员变为公共成员,并且您可以对其进行哈希。