最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++vector的insert函數(shù)用法小結

 更新時間:2025年03月14日 11:01:36   作者:*TQK*  
std::vector::insert是C++中用于在指定位置插入元素的函數(shù),支持插入單個元素、多個相同元素、一個范圍的元素或初始化列表中的元素,插入操作可能會使插入點之后的迭代器失效,并且時間復雜度為O(n),本文介紹C++vector的insert函數(shù)用法小結,感興趣的朋友一起看看吧

在 C++ 中,std::vector 是一個動態(tài)數(shù)組,提供了靈活的內存管理和豐富的成員函數(shù)。insert 函數(shù)是 std::vector 提供的一個非常有用的成員函數(shù),用于在指定位置插入元素或另一個范圍的元素。

std::vector::insert 的用法

1. 插入單個元素

iterator insert(const_iterator pos, const T& value);

pos:插入位置的迭代器(指向要插入位置的前一個元素)。

value:要插入的元素。

2. 插入多個相同的元素

void insert(const_iterator pos, size_type count, const T& value);

pos:插入位置的迭代器。

count:要插入的元素數(shù)量。

value:要插入的元素。

3. 插入一個范圍的元素

template <class InputIterator>
void insert(const_iterator pos, InputIterator first, InputIterator last);

pos:插入位置的迭代器。

first:范圍的起始迭代器。

last:范圍的結束迭代器。

4. 插入初始化列表中的元素(C++11 及以上)

void insert(const_iterator pos, initializer_list<T> ilist);

pos:插入位置的迭代器。

ilist:初始化列表。

示例代碼

示例 1:插入單個元素

#include <iostream>
#include <vector>
using namespace std;
int main() {
    vector<int> vec = {1, 2, 3, 4, 5};
    vec.insert(vec.begin() + 2, 99); // 在索引2的位置插入99
    for (int num : vec) {
        cout << num << " ";
    }
    cout << endl;
    return 0;
}

輸出:

1 2 99 3 4 5

示例 2:插入多個相同的元素

#include <iostream>
#include <vector>
using namespace std;
int main() {
    vector<int> vec = {1, 2, 3, 4, 5};
    vec.insert(vec.begin() + 2, 3, 99); // 在索引2的位置插入3個99
    for (int num : vec) {
        cout << num << " ";
    }
    cout << endl;
    return 0;
}

輸出:

1 2 99 99 99 3 4 5

示例 3:插入一個范圍的元素

#include <iostream>
#include <vector>
using namespace std;
int main() {
    vector<int> vec1 = {1, 2, 3, 4, 5};
    vector<int> vec2 = {99, 100, 101};
    vec1.insert(vec1.begin() + 2, vec2.begin(), vec2.end()); // 在索引2的位置插入vec2的所有元素
    for (int num : vec1) {
        cout << num << " ";
    }
    cout << endl;
    return 0;
}

輸出:

1 2 99 100 101 3 4 5

示例 4:插入初始化列表中的元素

#include <iostream>
#include <vector>
using namespace std;
int main() {
    vector<int> vec = {1, 2, 3, 4, 5};
    vec.insert(vec.begin() + 2, {99, 100, 101}); // 在索引2的位置插入初始化列表中的元素
    for (int num : vec) {
        cout << num << " ";
    }
    cout << endl;
    return 0;
}

輸出:

1 2 99 100 101 3 4 5

注意事項

迭代器失效

插入操作會使插入點之后的所有迭代器失效。如果需要在插入后繼續(xù)使用迭代器,建議重新獲取。

例如:

auto it = vec.begin() + 2;
vec.insert(it, 99);
it = vec.begin() + 2; // 重新獲取迭代器

性能

插入操作的時間復雜度為 O(n),其中 n 是插入點之后的元素數(shù)量。這是因為插入操作可能需要移動插入點之后的所有元素。

內存分配

如果插入操作導致 vector 的容量不足,vector 會自動重新分配內存,這可能會導致所有迭代器失效。

總結

std::vector::insert 是一個非常靈活的函數(shù),可以用于在指定位置插入單個元素、多個相同的元素、一個范圍的元素或初始化列表中的元素。通過合理使用 insert 函數(shù),可以方便地操作 vector 的內容。

到此這篇關于C++vector的insert函數(shù)用法的文章就介紹到這了,更多相關C++ vector的insert函數(shù)用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C語言詳細分析講解關鍵字const與volatile的用法

    C語言詳細分析講解關鍵字const與volatile的用法

    在C語言中,我們經(jīng)常會見到const和volatile這兩個關鍵字,那么我們今天就來介紹下這兩個關鍵字,提起?const?關鍵字,我們可能首先想到的是經(jīng)過它修飾的變量便是常量了。其實我們這種想法是錯誤的,其實?const?修飾的變量是只讀的,其本質還是變量
    2022-04-04
  • C語言三個函數(shù)的模擬實現(xiàn)詳解

    C語言三個函數(shù)的模擬實現(xiàn)詳解

    這篇文章主要為大家詳細介紹了C語言三個函數(shù)的模擬實現(xiàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++中關于this指針的入門介紹

    C++中關于this指針的入門介紹

    this?指針在C++類和對象中是個很方便實用的關鍵字,可以簡化對象成員屬性的調用,使代碼表達的含義更加準確;在之前的學習中我們都可以判斷變量所占內存空間大小,那么我們創(chuàng)建的類對象所占的內存空間怎么計算呢?想知道this的妙用和類對象占用的內存空間就來跟我學習吧
    2022-07-07
  • C語言中結構體實例解析

    C語言中結構體實例解析

    大家好,本篇文章主要講的是C語言中結構體實例解析,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • C語言實現(xiàn)將double/float 轉為字符串(帶自定義精度)

    C語言實現(xiàn)將double/float 轉為字符串(帶自定義精度)

    這篇文章主要介紹了C語言實現(xiàn)將double/float 轉為字符串(帶自定義精度),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 基于C語言實現(xiàn)簡易三子棋游戲

    基于C語言實現(xiàn)簡易三子棋游戲

    這篇文章主要為大家詳細介紹了基于C語言實現(xiàn)簡易三子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下<BR>
    2022-01-01
  • 實例解析C++設計模式編程中簡單工廠模式的采用

    實例解析C++設計模式編程中簡單工廠模式的采用

    這篇文章主要介紹了C++設計模式編程中簡單工廠模式的采用實例,在簡單工廠模式中程序往往利用封裝繼承來降低耦合度,需要的朋友可以參考下
    2016-03-03
  • C++智能指針weak_ptr的作用詳解

    C++智能指針weak_ptr的作用詳解

    weak_ptr是一個智能指針,也是一個類模板,本文主要介紹了C++智能指針weak_ptr的作用詳解,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • 詳解如何將c語言文件打包成exe可執(zhí)行程序

    詳解如何將c語言文件打包成exe可執(zhí)行程序

    這篇文章主要介紹了詳解如何將c語言文件打包成exe可執(zhí)行程序,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • C++學習進階篇之類大小計算和this指針

    C++學習進階篇之類大小計算和this指針

    this是C++中的一個關鍵字,也是一個const指針,它指向當前對象,通過它可以訪問當前對象的所有成員,下面這篇文章主要給大家介紹了關于C++學習進階篇之類大小計算和this指針的相關資料,需要的朋友可以參考下
    2023-04-04

最新評論

米易县| 察雅县| 肃南| 茂名市| 通化市| 韶关市| 高雄市| 五莲县| 安远县| 将乐县| 宜宾市| 五指山市| 竹溪县| 樟树市| 合水县| 昔阳县| 屯昌县| 白沙| 元江| 玉溪市| 贡山| 清水河县| 安顺市| 和平区| 清水河县| 嘉黎县| 凉城县| 金平| 武山县| 阿合奇县| 慈利县| 句容市| 江山市| 玛沁县| 遂溪县| 文水县| 甘泉县| 黄梅县| 永胜县| 房产| 苍梧县|