首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪种结构比较合适?

哪种结构比较合适?
EN

Stack Overflow用户
提问于 2013-12-16 18:20:16
回答 4查看 111关注 0票数 1

嗨,需要管理一串位。

哪一种是最好的方法?!

我知道使用bool元素是一个不错的选择,但是如何确保bool元素只使用一点内存呢?!

我读过有关位集结构的文章,但我读过它使用bool元素。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-12-16 18:26:44

类模板std::bitset和几个相关函数用于表示和操作固定大小的位序列。每个位代表1或0。这个类不使用bool类型来表示位。如果需要包含bool值的容器,可以考虑使用std::vector<bool>。它是模板std::vector的专门化。

票数 4
EN

Stack Overflow用户

发布于 2013-12-16 18:57:38

你有两个选择,真的:

  • 有了一个合理的位数上限,std::bitset<N> ( N是位数)是非常方便的。
  • 否则,代码位位置上的std::vector<unsigned char>可能是最好的选择。

注意:std::vector<bool>为您实现了这个位打包,所以您可能会使用它,但是它的主要问题是,例如,at将产生一个代理,而不是一个bool&,因为这种位填充可能会混淆模板代码。

票数 1
EN

Stack Overflow用户

发布于 2013-12-16 18:23:02

你可以使用位集。

你也许想看看这个。它指出:

该类模拟一个bool元素数组,但为空间分配进行了优化:通常,每个元素只占用一个位(在大多数系统中,这比最小元素类型char少8倍)。 每个位位置都可以单独访问:例如,对于名为foo的给定位集,表达式foo3访问其第四个位,就像常规数组访问其元素一样。

从这个链接:http://www.cplusplus.com/reference/bitset/bitset/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20617974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档