问题标签 [std-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 回答
938 浏览

c++ - 将 2D 位集存储为 1D 时的 XOR 位集

回答只关心速度时如何存储二进制数据?,我正在尝试写一些来做比较,所以我想使用std::bitset. 但是,为了公平比较,我希望 1Dstd::bitset模拟 2D。

因此,而不是:

我想使用:

优化数据局部性。但是,现在我遇到了如何存储和计算二进制码之间的汉明距离的问题?,如我的最小示例所示:

错误:

这是因为它不知道何时停止!在处理 D 位后如何告诉它停止?


我的意思是不使用 2D

0 投票
1 回答
473 浏览

c++ - 使用 std::bitset 时程序崩溃,但仅在使用 VC 2015 编译时

我正在开发一个简单的程序,它将字符串转换为二进制代码并返回。我在 Ubuntu 上工作,想用 Visual Studio 2015 在 Windows 上编译程序。虽然 Linux 构建运行良好,但在 Windows 上它可以编译,但会崩溃,例如

调用以下函数时:

现在,我的问题是,这段代码有什么问题?为什么它可以在 Linux (gcc) 和 Windows (MinGW) 上运行,但不能在带有 Visual Studio 2015 的 Windows 上运行?

我目前的解决方法是:

这两种解决方案中哪一种更好?

0 投票
1 回答
543 浏览

c++ - g++ 为 std::bitset 分配的内存不足

这里我分配 10^9 位:

我明白了cc1plus.exe: out of memory allocating 268439551 bytes

但是当我这样做时

125000000 字节(125 MB)分配得很好。如果我更改N为 10 的不同幂,我会发现两者sizeof都是相同的。我什至看不到 268439551 字节的限制来自哪里,因为那是 268.4 MB,而我有大约 4 GB 的可用 RAM。即使在 32 位系统上,~200 MB 也不应该引起问题,并且以某种方式达到了字节限制。是什么导致了这里的问题?

在具有 8 GB RAM 的 Windows 8.1 上使用 gcc 4.8.3。

0 投票
1 回答
205 浏览

c++ - 我可以在 OpenACC 中使用 std::bitset 的函数吗?

是否可以在 OpenACC 区域使用 bitset 的功能?示例代码:

pgc++ -fast -acc -Minfo=accel -ta=nvidia:managed -DNDEBUG -pgc++libs -g如果我用类似的代码(LD_LIBRARY_PATH=/opt/pgi/linux86-64/lib)编译上面的代码,我会收到以下错误: PGCC-S-0155-PGI support procedure called within a compute region: __blt_pgi_popcountl (proba2.cpp: 1288) PGCC-S-0155-Accelerator region ignored; see -Minfo messages (proba2.cpp: 28) main: 28, Accelerator region ignored 1288, Accelerator restriction: unsupported call to support routine '__blt_pgi_popcountl' PGCC/x86 Linux 16.10-0: compilation completed with severe errors,但代码包含的行数比 1288 少得多。
我使用 mystrcmp 因为内置-在 strcmp 中需要routine seq,但据我所知,这是不可能解决的。
但是,如果vv.count()注释掉了,则编译成功。
看了很多关于OpenACC和OpenACC问题的资料,但没有找到对应这个问题的回复。
我该怎么办?

0 投票
1 回答
133 浏览

mpi - 使用 MPI 发送 bitset

什么是无需转换即可从位集类发送/接收位的有效方法。是否可以使用 MPI_BYTE?

如果是这样,将什么定义为要保存这些位的数组的容器?如果这不可能,哪种转换更有效,转换为 ulong 还是转换为字符串?

0 投票
1 回答
1178 浏览

c++ - 将位集转换为有符号

我有一个 std::bitset<32> 并且我想隔离正确的 16 位并输出这些位,就好像它们是有符号数一样。我还想将整个 32 位的东西输出为有符号的数字。但是,Bitset 不支持带符号的 int to_string()。

例如 1010000000100001 1111111111111111:

我想要一个输出是:

-1608384513 为整个序列

-1 表示右 16 位。

任何转换它们的巧妙方法?

0 投票
1 回答
116 浏览

c++ - 如何测试 std::bitset 的随机性?

我使用下面的代码创建随机位集。现在我想写一些测试并问自己如何测试位集的随机性?这个问题有好的解决方案吗?

由于位集不能表示为数字 AFAIK,我不知道如何应用某种测试,如卡方或其他。

我应该计算 1 和 0 的出现次数吗?

还有其他方法吗?

0 投票
1 回答
375 浏览

c++ - 初始化 (bitset,int) 对的向量

初始化时

但我gettig错误:

'pair' 不能出现在常量表达式中

如何制作一对bitset,int的向量?

0 投票
1 回答
3705 浏览

c++11 - O(log n)中的c ++位集逻辑运算?

根据这篇文章,对位集执行按位运算的性能是 O(n),我如何使它成为 O(log n)。谢谢。

0 投票
3 回答
4625 浏览

c++ - 位集之间的c ++ XOR

这导致

这很好,但也修改了 a1,在 XOR 操作之后变为:

为什么会这样?在不创建临时变量的情况下如何避免这种情况?