你必须管理一串点。
哪种方法最好?!
我知道使用bool元素可能是一个不错的选择, 但是如何确定bool元素只使用一位内存?!
我已经读过有关bitset结构的内容,但我读过它使用了bool 元件。
答案 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]访问其第四位, 就像常规数组访问其元素一样。
答案 3 :(得分:0)
vector<bool>
可以将所有值存储为位,同时提供常规向量的大部分功能。