在c ++中处理数字序列[0:9]的最佳数据类型是什么,内存中浪费最少?
我认为它可能是那样的
typedef bitset<4> Digit;
vector<Digit> myVector;
但我认为每个bitset<4>
保留一个字节 - 与char-相同,所以它不比普通字符串好,是吗?
有没有更好的想法来处理这样的事情?
答案 0 :(得分:3)
要存储10个集合中的值,需要4位。
但是在4位上,可以表示16个值。这是浪费6/16 = 37.5%。
因此,最佳代表性将最大限度地减少浪费。
最好的方法是以二进制形式存储,其中使用了所有位组合。