# 结构
# 用处
- 整数集合
# 定义
typedef struct intset { | |
// 编码方式,只支持升级,不支持降级 | |
uint32_t encoding; | |
// 集合包含的元素数量,contents 的长度 | |
uint32_t length; | |
// 保存元素的数组,有序,不重复 | |
int8_t contents[]; | |
} |
# 升级
当新加入元素的类型比整数集合所有元素的类型都长时,就要先进行升级,才能加入。分为三步:
- 根据新元素类型扩展数组大小,并为其分配空间
- 将现有元素转换成与新元素相同的类型
- 将新元素加入到数组中
好处:
- 提升灵活性
- 节约内存
# 降级
删除时不支持降级。