在下面的代碼我從一些二進制文件填補了uint8_t
載體,它包含some_size
數個字節的信息 -轉換載體的BitSet
現在我從一些指標知道說20,有存在37字節的1
或0
,我需要填入bitset
。該位看起來像std::bitset<37> booleans;
,並初始化爲全部0
。現在,如果初始索引是20,所以我需要填寫booleans
37個存在於這將範圍從buffer[20]
到buffer[56]
字節布爾值。
除了遍歷載體和手動位集上的每個比特設置爲1或0,是否有任何其他的方法來那些字節轉換到這個位集合?
我不知道你將如何uint8_t'轉換'無需編寫循環或使用功能不內部循環的爲你bitset'使用類型'。無論哪種方式,循環完成。 – PaulMcKenzie
@PaulMcKenzie ofcourse一個循環是必需的。但是使用'std :: copy'或'std :: copy_n'這樣的手動循環就是我在這裏要求的。 –
問題在於'bitset'沒有迭代器,因此''copy''或'copy_n'等算法函數將難以按照自己的想法操作。 'for_each'可能是你可以做的最好的,[像這樣的東西](http://ideone.com/KyPbvU)。 – PaulMcKenzie