问题标签 [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.

0 投票
1 回答
762 浏览

c++ - 定义 boost::dynamic_bitset 的(一/二)维数组

有没有办法在 boost 中有一个 dynamic_bitset 数组?我希望能够同时拥有一维和二维数组——谢谢!

0 投票
0 回答
2759 浏览

c++ - 将 C++ 中的动态位集调整为用户输入的长度

这个 C++ 程序要求用户输入他/她接下来要输入的位序列的长度。这个长度变量被命名为 xx,它的类型是 int。我正在使用三个初始大小为 5 的动态位集,它们是 inpSeq、operSeq 和 bit。例如,我正在调整位集的大小 inpSeq.resize(xx);。编译程序的时候,出现一个很大的错误列表,感觉这里贴不上去。但我确信这些错误都与这个变量 xx 有关,代码在使用它作为变量来调整位集大小之前编译得很好。我调整位集大小的方式有什么问题?我可以在不要求用户输入 inpSeq 位集长度的情况下制作 inpSeq 大小的位集吗?

0 投票
1 回答
1217 浏览

c++ - 声明和赋值给 C++ 类中的动态位集

以下代码无法编译,我确信问题在于我如何声明动态位集 inpSeq 并将值分配给动态位集 inpSeq,以便为该位集分配位,我这样编码

为了在我使用的成员函数集中声明 inpSeq:

此外,其他 3 个动态位集的声明在某种程度上是错误的,我不知道为什么,我将它们声明为好像它们是主要的,不知道它在一个类中是否或如何不同。

这是完整的代码:

错误是:数字常量之前的预期标识符

0 投票
2 回答
662 浏览

c++ - 通过 C++ 中的函数将位分配给动态位集

此代码使用类,类 rsa 有一个函数集,它应该采用 3 个整数和 1 个动态位集。但是编译器返回错误,我认为它们都是一样的:

这是代码:

0 投票
2 回答
443 浏览

c++ - 从其他方法初始化和调用的动态位集给出分段错误

我在一个类的构造函数中初始化一个动态位集,然后调用该类的一个方法来用一些值填充它。无论我尝试访问 bitset 的哪个部分,都会出现分段错误。

构造函数打印出正确的输出 200000 和 0,但是当进入 fill_occupancy 方法时,它给出了段错误。

我检查了这个问题,但我认为这不适用,因为我看到了构造函数的正确输出,所以我正确地构造了位集。

如果我简单地让方法 fill_occupancy() 接受 dynamic_bitset<> 类型的参数,然后用 fill_occupancy(occupancy) 调用它,我已经找到了一种让它工作的方法。为什么这行得通而上面的代码却不行?我可以在其他方法中调用其他数据类型,而无需将它们作为参数。

谢谢你。

编辑 这是以防有人对更详细的解释感兴趣:

在 MyClass 构造函数中,只调用

当占用率设置为零大小时会产生错误。要调整它的大小,必须调用

然后 occupancy 具有正确的大小并且是 MyClass 的成员,因此可以从类的任何其他方法访问,例如fill_occupancy().

我最初的构造使占用成为与成员同名的局部变量,因此在构造函数中它起作用,但在其他任何地方都调用了成员(大小为 0),这解释了段错误。

再次感谢 juanchopanza 的解释。

0 投票
2 回答
11914 浏览

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::bitsetsetflip

2)为什么调用reset对速度有巨大的负面影响std::bitset

这是我的代码:

我用它编译了

bitset.cpp上面插入的代码在哪里。

0 投票
1 回答
174 浏览

c++ - 如何在结构中引入 dynamic_bitset

我试图dynamic_bitset在结构中使用。的大小u取决于输入。

但是,在编译代码时出现以下错误:

我该如何解决这个问题?先感谢您。

0 投票
2 回答
1794 浏览

c++ - 如何序列化 boost::dynamic_bitset?

如何使用 boost::dynamic_bitset 成员序列化一个类?

编译出错(提升 1.57)

0 投票
1 回答
3009 浏览

c++ - Bitset 作为函数的返回值

我想要一个接口,其函数返回一个位集:

问题是我不想强制bitset. 所以我想我必须boost::dynamic_bitset改用:

我听说这boost::dynamic_bitsetstd::bitset虽然慢。有没有其他方法可以避免使用dynamic_bitset并拥有一个返回std::bitset大小由实现者确定的接口?

0 投票
0 回答
580 浏览

c++ - 如何从 std::bitset 初始化 boost::dynamic_bitset

如何初始化boost::dynamic_bitsetfrom std::bitset?最简单的解决方案是 for 循环:

有没有更短或更快的方法来做到这一点?