相关疑难解决方法(0)

单字节布尔.为什么?

在C++中,为什么bool需要一个字节来存储true或false,其中只有一个位足够,例如0表示false,1表示true表示?(为什么Java也需要一个字节?)

其次,使用以下内容会更安全多少?

struct Bool {
    bool trueOrFalse : 1;
};
Run Code Online (Sandbox Code Playgroud)

第三,即使它是安全的,上述现场技术真的会有所帮助吗?因为我听说我们在那里节省空间,但是编译器生成的代码访问它们比访问基元所生成的代码更大更慢.

c++ java performance primitive boolean

41
推荐指数
4
解决办法
6911
查看次数

连接boost :: dynamic_bitset或std :: bitset

连接2个位集的最佳方法是什么?

比如我有

boost::dynamic_bitset<> test1( std::string("1111") );
boost::dynamic_bitset<> test2( std::string("00") );
Run Code Online (Sandbox Code Playgroud)

它们应该连接成一个thrid Bitset test3然后保存

111100 
Run Code Online (Sandbox Code Playgroud)

解决方案应该使用boost :: dynamic_bitset.如果解决方案适用于std :: bitset,那也会很好.在连接位时应该关注性能.

更新:我比较了两种方法(来自我和Neil的字体方法以及来自信使的shift方法)和字符串方法更快(因子10 ++).代码在这里:http: //pastebin.com/HfpfYfy8

我希望Pastebin可以发布长代码清单.如果有更好的方法请与我联系.

c++ boost std bitset

8
推荐指数
2
解决办法
8186
查看次数

标签 统计

c++ ×2

bitset ×1

boolean ×1

boost ×1

java ×1

performance ×1

primitive ×1

std ×1