问题标签 [boost-dynamic-bitset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 定义 boost::dynamic_bitset 的(一/二)维数组
有没有办法在 boost 中有一个 dynamic_bitset 数组?我希望能够同时拥有一维和二维数组——谢谢!
c++ - 将 C++ 中的动态位集调整为用户输入的长度
这个 C++ 程序要求用户输入他/她接下来要输入的位序列的长度。这个长度变量被命名为 xx,它的类型是 int。我正在使用三个初始大小为 5 的动态位集,它们是 inpSeq、operSeq 和 bit。例如,我正在调整位集的大小
inpSeq.resize(xx);
。编译程序的时候,出现一个很大的错误列表,感觉这里贴不上去。但我确信这些错误都与这个变量 xx 有关,代码在使用它作为变量来调整位集大小之前编译得很好。我调整位集大小的方式有什么问题?我可以在不要求用户输入 inpSeq 位集长度的情况下制作 inpSeq 大小的位集吗?
c++ - 声明和赋值给 C++ 类中的动态位集
以下代码无法编译,我确信问题在于我如何声明动态位集 inpSeq 并将值分配给动态位集 inpSeq,以便为该位集分配位,我这样编码
为了在我使用的成员函数集中声明 inpSeq:
此外,其他 3 个动态位集的声明在某种程度上是错误的,我不知道为什么,我将它们声明为好像它们是主要的,不知道它在一个类中是否或如何不同。
这是完整的代码:
错误是:数字常量之前的预期标识符
c++ - 通过 C++ 中的函数将位分配给动态位集
此代码使用类,类 rsa 有一个函数集,它应该采用 3 个整数和 1 个动态位集。但是编译器返回错误,我认为它们都是一样的:
这是代码:
c++ - 从其他方法初始化和调用的动态位集给出分段错误
我在一个类的构造函数中初始化一个动态位集,然后调用该类的一个方法来用一些值填充它。无论我尝试访问 bitset 的哪个部分,都会出现分段错误。
构造函数打印出正确的输出 200000 和 0,但是当进入 fill_occupancy 方法时,它给出了段错误。
我检查了这个问题,但我认为这不适用,因为我看到了构造函数的正确输出,所以我正确地构造了位集。
如果我简单地让方法 fill_occupancy() 接受 dynamic_bitset<> 类型的参数,然后用 fill_occupancy(occupancy) 调用它,我已经找到了一种让它工作的方法。为什么这行得通而上面的代码却不行?我可以在其他方法中调用其他数据类型,而无需将它们作为参数。
谢谢你。
编辑 这是以防有人对更详细的解释感兴趣:
在 MyClass 构造函数中,只调用
当占用率设置为零大小时会产生错误。要调整它的大小,必须调用
然后 occupancy 具有正确的大小并且是 MyClass 的成员,因此可以从类的任何其他方法访问,例如fill_occupancy()
.
我最初的构造使占用成为与成员同名的局部变量,因此在构造函数中它起作用,但在其他任何地方都调用了成员(大小为 0),这解释了段错误。
再次感谢 juanchopanza 的解释。
c++ - boost::dynamic_bitset 比 std::bitset 慢,除非 std::bitset 被重置
我最近遇到了 bitset 模板,我真的很想在我当前的项目中使用它们。继续阅读,我看到std::bitset
模板的大小必须在编译时确定。许多人建议使用boost::dynamic_bitset
来减轻此要求。
为了比较两者,我决定对 、 和 方法进行set
速度flip
比较count
。
结果很奇怪......我想知道是否有人可以为我解释一下。
代码在帖子的末尾,但我会在这里解释我在做什么。我有一个std::bitset
对象(调用它bs
)和一个boost::dynamic_bitset
对象(调用它dynbs
)。每个都有n=1000000
位。对于上面的给定方法,n
依次调用每个位上的方法并重复此R=10000
时间。
使用该std::chrono
库,以下是每个以纳秒为单位的时间:
和boost::dynamic_bitset
似乎要慢set
得多flip
。
更有趣的是,如果reset
在运行这些测试之前对两个对象调用该方法,那么时间是可比较的。他们来了:
现在,两个容器都声称将所有位初始化为0
,因此调用reset
不应更改任何位。转储none
之前和之后的输出reset
确实证实了这一点。
所以毕竟,我有两个问题:
1)为什么比调用时和时boost::dynamic_bitset
慢得多?std::bitset
set
flip
2)为什么调用reset
对速度有巨大的负面影响std::bitset
?
这是我的代码:
我用它编译了
bitset.cpp
上面插入的代码在哪里。
c++ - 如何在结构中引入 dynamic_bitset
我试图dynamic_bitset
在结构中使用。的大小u
取决于输入。
但是,在编译代码时出现以下错误:
我该如何解决这个问题?先感谢您。
c++ - 如何序列化 boost::dynamic_bitset?
如何使用 boost::dynamic_bitset 成员序列化一个类?
编译出错(提升 1.57)
c++ - Bitset 作为函数的返回值
我想要一个接口,其函数返回一个位集:
问题是我不想强制bitset
. 所以我想我必须boost::dynamic_bitset
改用:
我听说这boost::dynamic_bitset
比std::bitset
虽然慢。有没有其他方法可以避免使用dynamic_bitset
并拥有一个返回std::bitset
大小由实现者确定的接口?
c++ - 如何从 std::bitset 初始化 boost::dynamic_bitset
如何初始化boost::dynamic_bitset
from std::bitset
?最简单的解决方案是 for 循环:
有没有更短或更快的方法来做到这一点?