钻头的结构是什么?

时间:2013-12-16 18:20:16

标签: c++ bit

你必须管理一串点。

哪种方法最好?!

我知道使用bool元素可能是一个不错的选择, 但是如何确定bool元素只使用一位内存?!

我已经读过有关bitset结构的内容,但我读过它使用了bool 元件。

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

你有两个选择:

  • 具有合理的位数上限,std::bitset<N>其中N是位数非常方便
  • 否则,您在其上编码位位置的std::vector<unsigned char>可能是最好的

注意:std::vector<bool>为您实现了这个位包装,因此您可以使用它,但是它的主要问题是at例如将产生代理而不是{ {1}}由于这种比特打包,这可能会混淆模板化代码。

答案 2 :(得分:0)

你可以使用bitset。

你可能想看看这个。它说:

  

该类模拟bool元素数组,但针对空间进行了优化   分配:通常,每个元素只占一位(on,on   大多数系统,比最小的元素类型少八倍:   炭)。

     

每个位位置都可以单独访问:例如,对于a   给定名为foo的bitset,表达式foo [3]访问其第四位,   就像常规数组访问其元素一样。

来自此链接:http://www.cplusplus.com/reference/bitset/bitset/

答案 3 :(得分:0)

vector<bool>可以将所有值存储为位,同时提供常规向量的大部分功能。

http://www.cplusplus.com/reference/vector/vector-bool/