- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用dynamic_bitset可以基于整数值(下面的5、124)进行初始化。
是否可以使用整数值进行更新?
创建新的dynamic_bitset时,以下解决方案在每次更新时分配堆内存。
这是一个较差的解决方案(速度慢,可能出现堆碎片等)。
std::vector<boost::dynamic_bitset<uint8_t>> data;
data.push_back(boost::dynamic_bitset<uint8_t>(4, 5));
data.push_back(boost::dynamic_bitset<uint8_t>(7, 124));
for(const auto& s: data)
std::cout << s << std::endl;
for(int i; i<10; i++)
{
data[0]=boost::dynamic_bitset<uint8_t>(4, i);
for(const auto& s: data)
std::cout << s << std::endl;
}
最佳答案
也许您可以从阻止列表中进行初始化:
for(uint8_t i = 0; i<10; i++) {
data[0].clear();
data[0].init_from_block_range(&i, &i+1);
}
append()
会更自然(并且最终需要8位以上时可能会有更多好处):
#include <boost/dynamic_bitset.hpp>
#include <iostream>
using BSet = boost::dynamic_bitset<uint8_t>;
using Block = BSet::block_type;
int main() {
std::vector<BSet> data;
data.emplace_back(4, 5);
data.emplace_back(7, 124);
auto& a = data[0];
auto& b = data[1];
std::cout << a << "\t" << b << "\n----\n";
for(Block i = 0; i<10; i++)
{
a.clear();
a.init_from_block_range(&i, &i+1);
b.clear();
b.append(i);
std::cout << a << "\t" << b << "\n";
}
}
0101 1111100
----
00000000 00000000
00000001 00000001
00000010 00000010
00000011 00000011
00000100 00000100
00000101 00000101
00000110 00000110
00000111 00000111
00001000 00001000
00001001 00001001
Note add
.resize(4)
to limit the capacityI'm not sure whether this function should have been part of the public interface (it looks like it might not), but you apparently can use
c.clear();
c.dispatch_init(4, i, {});See it Live On Coliru as well
关于c++ - 用整数值更新dynamic_bitset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61864414/
我希望生成一个 boost::dynamic_bitset 散列,以便我可以将值存储在 boost::bimaps 中。我尝试了以下代码,Test code here. #include #incl
我正在尝试使用 set的 dynamic_bitset对象,但我在运行时遇到断言失败: a.out: boost/dynamic_bitset/dynamic_bitset.hpp:1291: bo
我正在尝试使用 set的 dynamic_bitset对象,但我在运行时遇到断言失败: a.out: boost/dynamic_bitset/dynamic_bitset.hpp:1291: bo
我是 boost 的新手。我有一个使用 dynamic_bitset 的程序在 lambda 函数中。在我尝试运行该程序后,我收到了这条消息。即使没有初始化 bitset 的函数也会出现此消息以及处理
是否有一种干净的方法来返回 boost::dynamic_bitset 对象的反向排序? 例如:01001100成为00110010。我能想到的最简单的解决方案是将 bitset 转换为字符串,将字符
是否有一种干净的方法来返回 boost::dynamic_bitset 对象的反向排序? 例如:01001100成为00110010。我能想到的最简单的解决方案是将 bitset 转换为字符串,将字符
我正在尝试使用 boost::dynamic_bitset,如下所示: #include class Bitmap { public: Bitmap(std::size_t size = _si
我有这个功能: void SetCode(dynamic_bitset<> * c) { this->_code = c; this->_size = c->size(); }
我使用 boost::dynamic_bitset 来跟踪多个 tcp 连接。如果已连接,则设置为1,否则设置为0。并且每个连接是一个线程。我是否需要保护位集不受多线程影响?还是没有必要,因为它在创建
我有一个巨大的位集,代表一个 74MB 文件的所有位。我正在使用压缩算法来创建此位集的压缩字符串表示形式。然后我需要将该字符串存储到另一个动态位集中,以便以后可以解压缩。我的问题是,无论我如何尝试从字
我正在使用 C++ boost 的 dynamic_bitset。 我已经分配了一个变量,我只想更改它的值 - 像从构造函数中一样从“unsigned long”重新构造它,但我不想再次分配内存或创建
我很难理解 boost::dynamic_bitset 或 std::vector 在内部做什么。我最终想要做的是组成一个网络框架并通过套接字发送它,但我无法以保持我组装的位顺序的方式转换它们....
跟进 How does one store a vector or a bitset into a file, but bit-wise? 基本上,我使用以下代码将位集编写为二进制文件: boost:
我想以一种不会降低性能的方式连接一个大的位集和一个较小的位集。目前,我的应用程序仅在以下代码中就花费了 20% 的 CPU 时间: boost::dynamic_bitset<> encode(con
Dynamic bitset 我有一个需要填充的用例 boost::dynamic_bitset , from a std::string buffer. 你能建议如何去做吗?所以我需要想出一个函数
如何使用 boost::dynamic_bitset 成员序列化一个类? #include #include #include #include #include class A {
我有一个 boost dynamic_bitset我正在尝试从中提取设置位: boost::dynamic_bitset myBitset(1000); 我的第一个想法是对每个索引做一个简单的“转储”
我有一个 7 字节/56 位位集,在构造时将第一个位设置为一个: boost::dynamic_bitset<> b(56, 1); 构造后,我想将一个整数值(比如 2019)放入第 4 位到第 15
有什么办法可以逆序遍历boost::dynamic_bitset吗?我的意思是我们通常通过 find_first() 找到第一个设置位,然后使用 find_next() 继续。 是否有相应的 find
根据所有初步迹象,boost dynamic_bitset只是标题。 documentation暗示它只是标题: The class dynamic_bitset is defined in the
我是一名优秀的程序员,十分优秀!