升级
每当我们要将一个新元素添加到整数集合里面, 并且新元素的类型比整数集合现有所有元素的类型都要长时, 整数集合需要先进行升级 (upgrade) , 然后才能将新元素添加到整数集合里面....升级整数集合并添加新元素共分为三步进行:
根据新元素的类型, 扩展整数集合底层数组的空间大小, 并为新元素分配空间;
将底层数组现有的所有元素都转换成与新元素相同的类型, 并将类型转换后的元素放置到正确的位上..., 而且在放置元素的过程中, 需要继续维持底层数组的有序性质不变;
将新元素添加到底层数组里面....升级之后新元素的摆放位置
因为引发升级的新元素的长度总是比整数集合现有所有元素的长度都大, 所以这个新元素的值要么就大于所有现有元素, 要么就小于所有现有元素:
在新元素小于所有现有元素的情况下, 新元素会被放置在底层数组的最开头...但是, 因为整数集合可以通过自动升级底层数组来适应新元素, 所以我们可以随意地将 int16_t , int32_t 或者 int64_t 类型的整数添加到集合中, 而不必担心出现类型错误, 这种做法非常灵活