변환하는 방법 bitarray를 C++로 빠르게 변환하는 방법은 무엇입니까? 실제 비트 배열에는 각각 750,000 비트가 있습니다.비트 맵을 변환하여
예 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) 배열이다. 두 종류의 세트 모두 허용됩니다.
비트 배열은 메모리에서 연속적입니다. 비트 배열의 첫 번째 비트는 simd의 올바른 정렬을가집니다. 지금은 std :: vector와 함께 사용자 정의 메모리 할당자를 사용하여 비트 배열을 유지합니다. 비트 배열의 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 :: vector – rxu
std :: vector? 또는 비트를 숫자 형식으로 저장 하시겠습니까? –
Alden