c++ - 数字序列的最佳数据结构 [0:9]
问题描述
在 C++ 中可以处理数字序列 [0:9] 且内存浪费最少的最佳数据类型是什么?
我想可能是这样的
typedef bitset<4> Digit;
vector<Digit> myVector;
但是我认为每个都bitset<4>
保留一个字节-与字符相同-,所以它并不比普通字符串好,是吗?
有没有更好的主意来处理这样的事情?
解决方案
要存储一组 10 中的值,需要 4 位。
但是在 4 位上,可以表示 16 个值。那是浪费了 6/16 =37.5%。
因此,最好的表示将最大限度地减少浪费。
最好的方法是以二进制形式存储,其中使用了所有位组合。
推荐阅读
- dart - 哪些 Dart 运算符允许重载?
- python - 如何在 CSS 中正确设置网格以实现移动友好视图?(Python Dash 项目)
- c++ - 使用 rapidjson 解析 json 文件的最简单方法是什么?
- python - 如何检查平铺物理和与精灵动画的碰撞?
- python - 从字典中的值中找到熊猫的平均值?
- javascript - index.js:1375 警告:列表中的每个孩子都应该有一个唯一的“关键”道具
- javascript - JS 控件在第二个滑块上不起作用,不确定如何定位
- sql - 关联不相关表中的值
- initialization - 使用 init 脚本在 dbfs 和 mvn 包中安装 jar 文件
- osgi - 导入包:com.day.cq.wcm.api,version=[1.29,2) 和 org.apache.sling.api.resource,version=[2.12,3) -- 无法解决