首页 > 解决方案 > 数字序列的最佳数据结构 [0:9]

问题描述

在 C++ 中可以处理数字序列 [0:9] 且内存浪费最少的最佳数据类型是什么?

我想可能是这样的

typedef bitset<4> Digit;
vector<Digit> myVector;

但是我认为每个都bitset<4>保留一个字节-与字符相同-,所以它并不比普通字符串好,是吗?

有没有更好的主意来处理这样的事情?

标签: c++stringdigitstd-bitset

解决方案


要存储一组 10 中的值,需要 4 位。

但是在 4 位上,可以表示 16 个值。那是浪费了 6/16 =37.5%。

因此,最好的表示将最大限度地减少浪费。

最好的方法是以二进制形式存储,其中使用了所有位组合。


推荐阅读