适用于bitsets或bitarray的好库

Vov*_*vik 5 c++ bitset

你好,我正在寻找一些好的库,适用于bitsets或bitarrays.任何人都知道更好的东西(或者在所有情况下都不会更糟)然后boost :: dynamic_bitset?无论图书馆是开源还是商业.

在我的项目中,存储和使用包含较少数量的大位掩码是一项常见任务.因此它们可以在内存中很好地压缩.

rni*_*sch 6

有几种可用的压缩比特矢量实现.它们通常具有行程长度编码以及在压缩形式上工作的和/或/ xor/not操作.

所以好处是:

  • 较小的空间使用(对于稀疏位集,如在您的用例中)
  • 非常快的位操作(因为它们在单词上工作并且对cpu缓存更友好)

并在不利方面:

  • 较慢的位访问(在特定位置查找位需要迭代)

我知道的一些实现(我确信还有其他实现):

Fastbit 实际上是一个使用bitvector索引的数据库.压缩的bitvector类可以直接使用(没有索引)

Lemur bitmapindex Fastbit引入的EWAH编码的另一种实现方式

由koen.vandamme压缩的bitvector 从未尝试过...但只有两个标题和一个cpp文件.所以试一试没多大努力.

Bitmagic 全面封装,实现了几个压缩的bitvector,包括硬件支持(sse2,...)


希望这可以帮助,

罗兰


Sch*_*ler 0

MiniSAT 图书馆怎么样?

http://minisat.se/

我记得这对位数组有一个简单的实现。