我正在尝试创建boost::bimap
的位集。我使用boost::dynamic_bitset
将二进制字符串转换为位集。我想知道它可以容纳的最大位数。在下面的代码中创建一个boost::bimap
,其大小为uint64_t
。我应该以上述大小推入不超过64位。以下示例显示了如何创建boost::dynamic_bitset
。
boost::dynamic_bitset<> bits = boost::dynamic_bitset<> (any binary number);
创建boost::bimaps
namespace bimaps = boost::bimaps;
typedef boost::dynamic_bitset<> Bitset;
typedef boost::bimap<
bimaps::unordered_set_of<uint64_t>,
bimaps::unordered_multiset_of<Bitset, std::hash<Bitset> > > bimap_reference;
typedef bimap_reference::value_type position;
bimap_reference reference_index_vector;
并将这些位插入bimap
reference_index_vector.insert(position(i, bits));
当我输入的位数超过64位时,也不会出现任何内存错误。我很困惑。