<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                整數集合(intset)是 Redis 用于保存整數值的集合抽象數據結構, 它可以保存類型為?`int16_t`?、?`int32_t`?或者?`int64_t`?的整數值, 并且保證集合中不會出現重復元素。 每個?`intset.h/intset`?結構表示一個整數集合: ~~~ typedef struct intset { // 編碼方式 uint32_t encoding; // 集合包含的元素數量 uint32_t length; // 保存元素的數組 int8_t contents[]; } intset; ~~~ `contents`?數組是整數集合的底層實現: 整數集合的每個元素都是?`contents`?數組的一個數組項(item), 各個項在數組中按值的大小從小到大有序地排列, 并且數組中不包含任何重復項。 `length`?屬性記錄了整數集合包含的元素數量, 也即是?`contents`?數組的長度。 雖然?`intset`?結構將?`contents`?屬性聲明為?`int8_t`?類型的數組, 但實際上?`contents`?數組并不保存任何?`int8_t`?類型的值 ——?`contents`?數組的真正類型取決于?`encoding`?屬性的值: * 如果?`encoding`?屬性的值為?`INTSET_ENC_INT16`?, 那么?`contents`?就是一個?`int16_t`?類型的數組, 數組里的每個項都是一個?`int16_t`?類型的整數值 (最小值為?`-32,768`?,最大值為?`32,767`?)。 * 如果?`encoding`?屬性的值為?`INTSET_ENC_INT32`?, 那么?`contents`?就是一個?`int32_t`?類型的數組, 數組里的每個項都是一個?`int32_t`?類型的整數值 (最小值為?`-2,147,483,648`?,最大值為?`2,147,483,647`?)。 * 如果?`encoding`?屬性的值為?`INTSET_ENC_INT64`?, 那么?`contents`?就是一個?`int64_t`?類型的數組, 數組里的每個項都是一個?`int64_t`?類型的整數值 (最小值為?`-9,223,372,036,854,775,808`?,最大值為?`9,223,372,036,854,775,807`?)。 圖 6-1 展示了一個整數集合示例: * `encoding`?屬性的值為?`INTSET_ENC_INT16`?, 表示整數集合的底層實現為?`int16_t`?類型的數組, 而集合保存的都是?`int16_t`?類型的整數值。 * `length`?屬性的值為?`5`?, 表示整數集合包含五個元素。 * `contents`?數組按從小到大的順序保存著集合中的五個元素。 * 因為每個集合元素都是?`int16_t`?類型的整數值, 所以?`contents`?數組的大小等于?`sizeof(int16_t)?*?5?=?16?*?5?=?80`?位。 ![](https://box.kancloud.cn/2015-09-13_55f51a1132a4b.png) 圖 6-2 展示了另一個整數集合示例: * `encoding`?屬性的值為?`INTSET_ENC_INT64`?, 表示整數集合的底層實現為?`int64_t`?類型的數組, 而數組中保存的都是?`int64_t`?類型的整數值。 * `length`?屬性的值為?`4`?, 表示整數集合包含四個元素。 * `contents`?數組按從小到大的順序保存著集合中的四個元素。 * 因為每個集合元素都是?`int64_t`?類型的整數值, 所以?`contents`?數組的大小為?`sizeof(int64_t)?*?4?=?64?*?4?=?256`?位。 ![](https://box.kancloud.cn/2015-09-13_55f51a139a148.png) 雖然?`contents`?數組保存的四個整數值中, 只有?`-2675256175807981027`?是真正需要用?`int64_t`?類型來保存的, 而其他的?`1`?、?`3`?、?`5`?三個值都可以用?`int16_t`?類型來保存, 不過根據整數集合的升級規則, 當向一個底層為?`int16_t`?數組的整數集合添加一個?`int64_t`?類型的整數值時, 整數集合已有的所有元素都會被轉換成?`int64_t`?類型, 所以?`contents`?數組保存的四個整數值都是?`int64_t`?類型的, 不僅僅是`-2675256175807981027`?。 接下來的一節將對整數集合的升級操作進行詳細的介紹。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看