标签: bitsets

boolean []与BitSet:哪个更有效?

什么在内存和CPU使用方面更有效 - 一个booleans或BitSet 数组?不使用特定的BitSet方法,只对数组进行get/set/clear(==,=,Arrays.fill).

java memory arrays performance bitsets

63
推荐指数
5
解决办法
4万
查看次数

何时使用STL位集而不是单独的变量?

在什么情况下,使用bitset(STL容器)来管理一组标志而不是将它们声明为多个单独的(bool)变量更合适?

如果我使用50位标志的bitset而不是使用50个单独的bool变量,我会获得显着的性能提升吗?

c++ performance bitsets

13
推荐指数
2
解决办法
9606
查看次数

如何编写适用于32位和64位的std :: bitset模板

请考虑以下代码

template<unsigned int N> void foo(std::bitset<N> bs)
{ /* whatever */ }

int main()
{
    bitset<8> bar;
    foo(bar);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

g ++在64位上抱怨这个,因为<8>被解释为unsigned long int,它与模板不完全匹配.如果我将模板更改为unsigned long int,那么32位编译会抱怨.

显然,解决这个问题的一种方法是将bitset <8>更改为bitset <8ul>,但有没有办法重新编写模板部分,以便它可以使用数字文字的默认解释?

c++ 64-bit templates bitsets

8
推荐指数
1
解决办法
5067
查看次数

从字符串设置boost dynamic_bitset

动态bitset

我有一个用例需要填充

boost::dynamic_bitset<unsigned char> , from a std::string buffer.
Run Code Online (Sandbox Code Playgroud)

你能建议如何解决这个问题.所以我需要提出一个功能

void populateBitSet (std::string &buffer, 
            boost::dynamic_bitset<unsigned char> & bitMap) {

     //populate bitMap from a string buffer
}
Run Code Online (Sandbox Code Playgroud)

c++ boost bitsets

5
推荐指数
1
解决办法
5324
查看次数

Scala中的BitSet内存使用情况

我想知道Scala中BitSet的内存使用情况.例如,如果我这样做:

  var bitArray:BitSet=new BitSet(10)
  bitArray.add(0)
  bitArray.add(2)
  bitArray.add(4)
  bitArray.add(6)
  bitArray.add(8)
Run Code Online (Sandbox Code Playgroud)

与包含偶数0,2,4,6,8的数组相比如何?

如何用二进制编写数字:

  var bitArray:BitSet=new BitSet(32)
  bitArray.add(5)
  bitArray.add(3)
  bitArray.add(2)
  bitArray.add(1)
  bitArray.add(0)
Run Code Online (Sandbox Code Playgroud)

这与47号相比如何?

我在这里问内存使用情况.但作为一个更开放的问题,如果你知道,BitSet(WR对其他常见数据类型)的优点/缺点或用途是什么.

谢谢,

memory performance scala bitsets bitset

5
推荐指数
1
解决办法
3686
查看次数

STL bitset问题

我有一个模板类"HEADER_FILE",它有一个变量bitset <>

using std::bitset<REG_SIZE>;
using std::bitset<REG_SIZE_2>;

template <int regSize=REG_SIZE>class Foo{
    bitset<regSize> bits;
};
Run Code Online (Sandbox Code Playgroud)

我不能用

using namespace std;
Run Code Online (Sandbox Code Playgroud)

在头文件中但是没有给出任何错误.

错误:template_id不能出现在using语句中.

哪里出错了;

c++ bitsets header-files

2
推荐指数
1
解决办法
297
查看次数

为什么不用更大的确定性类型实现BitSet?

这里的Java引用表明布尔类型虽然用"位"信息表示,但没有精确定义的大小.相比之下,其他类型似乎表明大小是定义的.例如,int是32位,故事结束.

当我们查看BitSet的规范时,我们可以看到它由布尔值组成.通过上面的参考,这似乎表明BitSet的"大小" 是未定义的 - 毕竟它由布尔值组成.果然,文档指定:

请注意,大小与位集的实现有关,因此它可能随实现而改变.

所以我的问题是,为什么不使用精确定义的另一种数据类型实现BitSet呢?例如,如果我们使用一个字节,我们可以保证8位的大小,我们不会觉得大小可能不是我们认为的大小.确实,大小必须能够被8整除,但至少它看起来更具有尺寸确定性.

如果我们的系统绝对不能超过某个内存容量,那么在大小方面实现精确的BitSet实现似乎很有用.

java bits bitsets primitive-types bitset

0
推荐指数
1
解决办法
545
查看次数