如何转换bitarray快速设置与c + +? 每个实际bitarrays有750,000位。转换bitarray设置
实施例1:
bitarray: 01011111
set: {0,1,2,3,4,5,7}
or set: {1,3,4,5,6,7}
实施例2:
bitarray: 0101 1111 0001 0001
set: {0,4,8,9,10,11,12,14}
or set: {1,3,4,5,6,7,11,15}
该组是usigned 32位整数(uint32_t的)的阵列。这两种设置都可以接受。
该位阵在内存中是连续的。 bitarray的第一位对simd有正确的对齐。现在我正在使用一个自定义的内存分配器与std :: vector来容纳bitarray。 bitarray中每1位的内存中有1位。
谢谢。
更新:
this so question does the reverse
How to define and work with an array of bits in C?
gmpy使用gmp library的SCAN1功能。 SCAN1似乎找到第一套,如维基百科here
什么是您的位阵列容器? – Alden
迄今为止它是一个std ::向量 – rxu
std ::向量?或者你将这些位存储在数字类型中? –
Alden