<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] ### what ***** 做為一個STL容器,vector確實只有兩個問題。第一,它不是一個STL容器。第二,它并不容納bool。 除此以外,就沒有什么要反對的了。 ### how ***** 如果c是一個T類型對象的容器,且c支持operator\[\], 那么以下代碼必須能夠編譯: ``` T *p = &c[0]; // 無論operator[]返回什么, 都可以用這個地址初始化一個T* ``` ### why ***** 如果你使用operator[]來得到Container中的一個T對象,你可以通過取它的地址而獲得指向那 個對象的指針。(假設T沒有倔強地重載一些操作符。)然而如果vector是一個容器,這段代碼必須能 夠編譯: ``` vector v; bool *pb = &v[0]; // 用vector::operator[]返回的東西的地址初始化一個bool* ``` 它不能編譯。因為vector是一個偽容器,并不保存真正的bool,而是打包bool以節省空間。在一個典 型的實現中,每個保存在“vector”中的“bool”占用一個單獨的比特,而一個8比特的字節將容納8 個“bool”。在內部,vector使用了與位域(bitfield)等價的思想來表示它假裝容納的bool。 ### 替代品 ***** 第一個是deque。deque提供了幾乎所有vector所 提供的(唯一值得注意的是reserve和capacity),而deque是一個STL容器,它保存真正的bool值。當 然,deque內部內存不是連續的。所以不能傳遞deque中的數據給一個希望得到bool數組的C API。 第二個vector的替代品是bitset。bitset不是一個STL容器,但它是C++標準庫的一部分。與STL容器不 同,它的大小(元素數量)在編譯期固定,因此它不支持插入和刪除元素。此外,因為它不是一個STL容 器,它也不支持iterator。但就像vector,它使用一個壓縮的表示法,使得它包含的每個值只占用1bit,它提供vector特有的flip成員函數,還有一系列其他操作位集(collection of bits)所特有的成員函 數。如果不在乎沒有迭代器和動態改變大小,你也許會發現bitset正合你意。
                  <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>

                              哎呀哎呀视频在线观看