<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## [1]一.C++內置順序容器 | 容器類型 | 位置 | 名稱 | 訪問 | 頭部插入 | 尾部插入 | 中部插入 | 存儲結構 | | -------------------- | ---------------- | -------------- | ------------ | -------- | -------- | -------- | ------------------------------ | | `vector` | `<vector>` | 向量 | 快速隨機訪問 | 慢 | 快 | 慢 | 動態數組 | | `deque` | `<deque>` | 雙端隊列 | 快速隨機訪問 | 快 | 快 | 慢 | 通過指針數組連接的多個動態數組 | | `list` | `<list>` | 雙向鏈表 | 雙向順序訪問 | 快 | 快 | 快 | 雙向鏈表 | | [11+] `forward_list` | `<forward_list>` | 單向鏈表 | 單向順序訪問 | 快 | 快 | 快 | 雙向鏈表 | | [11+] `array` | `<array>` | 固定大小的數組 | 快速隨機訪問 | 不支持 | 不支持 | 不支持 | 數組 | | `string` | `<string>` | 字符串 | 快速隨機訪問 | 慢 | 快 | 慢 | 動態數組 | ## [$]二.順序容器選擇原則 1. 一般使用 `vector`. 2. 如果你的程序有很多小的元素,且空間的額外開銷很重要,則不要使用 `list` 或 `forward list` 。 3. 如果程序要求隨機訪問元素,應使用 `vector` 或 `deque` . 4. 如果程序要求在容器的中間插入或刪除元素,應使用 `list` 或 `forward_list`. 5. 如果程序需要在頭尾位置插入或刪除元素,但不會在中間位置進行插入或刪除操作,則使用 `deque`。 ## [$]三.順序容器的特色操作 ### 1.插入操作 + 插入操作會使迭代器失效。 + 將元素插入到 `vector` 、`deque` 和 `string` 中的任何位置可能會耗費較多時間。 + C++11之前, `insert` 函數的返回值為 `void` 。 | 函數 | 不適用容器 | 含義 | | ------------------------------------------------ | -------------- | ------------------------------------------------------ | | `void c.push_back(const T &el);` | `forward_list`、`array` | 在末尾插入元素。 | | [11+]`void c.emplace_back(const T &el1,const T &el2,...);` | `forward_list`、`array` | 在末尾插入多個元素。 | | `void c.push_front(const T &el);` | `array`、`vector`、`string` | 在頭部插入元素。 | | [11+]`void c.emplace_front(const T &el1,const T &el2,...);` | `array`、`vector`、`string` | 在頭部插入多個元素。 | | `c.insert(p,const T &el);`| `array` | 在迭代器 `p` 指向的元素之前插入一個元素。返回指向新添加的元素的迭代器。 | | `c.insert(p,size_type n,const T &el);`| `array` | 在迭代器 `p` 指向的元素之前插入`n`個元素,每個元素的值為 `t`。返回指向新添加的元素的迭代器。 | | `c.insert(p,b,e);`| `array` | 在迭代器 `p` 指向的元素之前插入`b` 和 `e`之間的元素。`b`和`e`不能指向`c`中的元素。 | | [11+]`c.insert(p,{a,b,c,...});`| `array` | 在迭代器 `p` 指向的元素之前插入花括號中的元素。返回指向新添加的元素的迭代器。 | | [11+]`c.emplace(p,const T &el1,const T &el2,...);`| `array` | 在迭代器 `p` 指向的元素之前插入多個元素。返回指向新添加的元素的迭代器。 | ### 2.訪問操作 + 只有 `at` 越界訪問時,才會拋出 `out_ of_ range` 的異常。 | 函數或語句| 不適用容器 | 含義| | ------------------------------------------------ | -------------- | ------------------------------------------------------ | | `c.at(n);` | `forward_list`、`list` | 返回下標為 `n`的元素的引用。| | `c[n];` | `forward_list`、`list` | 返回下標為 `n`的元素的引用。| | `c.back();` | `forward_list` | 返回尾元素的引用。| | `c.front();` | 無 | 返回首元素的引用。| ### 3.刪除操作 + 刪除操作會使迭代器失效。 + 刪除一個指向不存在的元素的迭代器是未定義的。 + 刪除空容器中的元素是未定義的。 | 函數 | 不適用容器 | 含義 | | ------------------------------------------------ | -------------- | ------------------------------------------------------ | | `void c.pop_back(const T &el);` | `forward_list`、`array` | 刪除末尾元素。 | | `void c.pop_front(const T &el);` | `array`、`vector`、`string` | 刪除第一個元素。 | | `c.erase(p);`| `forward_list`、`array` | 刪除迭代器 `p` 指向的元素。返回下一個元素的迭代器。 | | `c.erase(b,e);`| `forward_list`、`array` | 刪除迭代器 [`b`,`e`] 之間的元素。返回下一個元素的迭代器。 |
                  <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>

                              哎呀哎呀视频在线观看