嗨,需要管理一串位。
哪一种是最好的方法?!
我知道使用bool元素是一个不错的选择,但是如何确保bool元素只使用一点内存呢?!
我读过有关位集结构的文章,但我读过它使用bool元素。
发布于 2013-12-16 18:26:44
类模板std::bitset和几个相关函数用于表示和操作固定大小的位序列。每个位代表1或0。这个类不使用bool类型来表示位。如果需要包含bool值的容器,可以考虑使用std::vector<bool>。它是模板std::vector的专门化。
发布于 2013-12-16 18:57:38
你有两个选择,真的:
std::bitset<N> ( N是位数)是非常方便的。std::vector<unsigned char>可能是最好的选择。注意:std::vector<bool>为您实现了这个位打包,所以您可能会使用它,但是它的主要问题是,例如,at将产生一个代理,而不是一个bool&,因为这种位填充可能会混淆模板代码。
发布于 2013-12-16 18:23:02
你可以使用位集。
你也许想看看这个。它指出:
该类模拟一个bool元素数组,但为空间分配进行了优化:通常,每个元素只占用一个位(在大多数系统中,这比最小元素类型char少8倍)。 每个位位置都可以单独访问:例如,对于名为foo的给定位集,表达式foo3访问其第四个位,就像常规数组访问其元素一样。
从这个链接:http://www.cplusplus.com/reference/bitset/bitset/
https://stackoverflow.com/questions/20617974
复制相似问题