如何轉換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