gpt4 book ai didi

c++ - 在 C++ 中快速拆分 dynamic_bitset

转载 作者:行者123 更新时间:2023-11-28 03:11:35 29 4
gpt4 key购买 nike

我认为标题几乎是不言自明的。我的代码中有一个 boost::dynamic_bitset,我希望对其进行快速拆分。目前,我正在使用 for 循环来执行此操作,但我很确定有一些更快的方法可以使用按位运算符来执行此操作。例如:

B = [0 1 0 0 0 1 1 1 0 1]

我想删除 B[2..5]:

B2 = [0 0 0 1]

有什么办法吗?

最佳答案

可以通过蒙版、移动和调整大小来实现:

boost::dynamic_bitset<> B(10);
B[1] = 1;
B[5] = 1;
B[6] = 1;
B[7] = 1;
B[9] = 1;

boost::dynamic_bitset<> mask(B.size(), 0xf << 2);
boost::dynamic_bitset<> B2(B.size());

B2 = (B & mask) >> 2;
B2.resize(4);

关于c++ - 在 C++ 中快速拆分 dynamic_bitset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18315325/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com