intset
整数集合是集合的底层实现之一,当元素质保函整数值元素时,并且集合元素数量不多,采用整数集合实现
数据结构
typedef struct intset {
uint32_t encoding; //编码方式
uint32_t length; //长度
int8_t contents[]; //内容
} intset;
- content根据encoding动态调整大小
- contents数组按照从小到大的顺序保存
升级
- 根据新元素类型,拓展底层空间,并为新元素分配空间
- 将底层数组转为新元素类型,并将转换后的元素放到正确位置,大小顺序不变
- 将新元素放入底层数组
降级
intset不支持降级升级的好处
- 提升灵活性
- 节约内存