C++ bitset是处理大数据然后将结果移动到内存中的正确容器吗?

C++ bitset是处理大数据然后将结果移动到内存中的正确容器吗?,c++,memory,bitset,C++,Memory,Bitset,我试图生成一个512bit模式,每次我想将数据右转到内存中时,0xdeadbeef这个词都会在512bit上不断旋转(左移1) 实际上,0xFFFFFF…….死区FFFFFFFFFFF(总计512位)。继续移动死角部分,每次移动后将整个图案写入内存 在这种情况下,bitset是正确的容器吗?我能够使用所有需要的操作(位集不是一个真正的容器,它是一个表示类。通常它可以用数组或bool列表表示。将其内容导出到数组的唯一方法是手动执行。如果您只需要实际偏移量,即模式的地址res,则可以说在不使用位集的

我试图生成一个512bit模式,每次我想将数据右转到内存中时,0xdeadbeef这个词都会在512bit上不断旋转(左移1)

实际上,0xFFFFFF…….死区FFFFFFFFFFF(总计512位)。继续移动死角部分,每次移动后将整个图案写入内存


在这种情况下,bitset是正确的容器吗?我能够使用所有需要的操作(位集不是一个真正的容器,它是一个表示类。通常它可以用数组或bool列表表示。将其内容导出到数组的唯一方法是手动执行。如果您只需要实际偏移量,即模式的地址res,则可以说在不使用位集的情况下执行上述移位更有效位的t将默认为1


问题是,在应用程序中应该如何处理endianness:模式的positiob是表示每个字中的lsb msb序列,还是应该按字节对齐。

是否有内存/CPu约束?应该调用的频率是多少。您只需创建一个64位数组并将其作为无CPu约束的指针保存即可。它将被调用,直到它填满大约16MB。Noam,我不懂。将什么作为指针?好吧,我使用位集的原因是在双字限制(64位)上操作位和移位模式。另一方面,我必须计算出移位到下一个64位的位,并对其进行管理。位集负责这一点。@SFbay007要转换它,你必须检查位集中的每个位,并在数组中设置为1或0。现在想想看:你有128个字,其中127或126个字都是相同的。只有
n/64
-th和
(n/64+1)%128
(如果n%64>32)单词不同。