Wie bitarray konvertieren, um schnell mit C++ zu setzen? Jedes der tatsächlichen Bitarrays hat 750.000 Bits.konvertieren bitarray zu
Beispiel 1:
bitarray: 01011111
set: {0,1,2,3,4,5,7}
or set: {1,3,4,5,6,7}
Beispiel 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}
Der Satz ist ein Array von usigned 32-Bit-Integer (uint32_t). Beide Arten von Set sind akzeptabel.
Das Bitarray ist zusammenhängend im Speicher. Das erste Bit des Bitarrays hat die korrekte Ausrichtung für simd. Zur Zeit verwende ich einen benutzerdefinierten Speicherzuordner mit Std :: Vector, um das Bitarray zu halten. 1 Bit im Speicher pro 1 Bit im Bitarray.
Danke.
Update:
this so question does the reverse
How to define and work with an array of bits in C?
gmpy verwendet die Abtastung1 Funktion des gmp library. Abtastung1 scheint ersten Satz zu finden, wie in wikipedia here
Was ist Ihr Container für das Bit-Array? – Alden
so weit ist es ein std :: vector – rxu
std :: vector? Oder speichern Sie die Bits in einem numerischen Typ? –
Alden