欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

std::vector::insert 的用法

1. 插入單個(gè)元素

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

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

value:要插入的元素。

2. 插入多個(gè)相同的元素

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

pos:插入位置的迭代器。

count:要插入的元素?cái)?shù)量。

value:要插入的元素。

3. 插入一個(gè)范圍的元素

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

pos:插入位置的迭代器。

first:范圍的起始迭代器。

last:范圍的結(jié)束迭代器。

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

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

pos:插入位置的迭代器。

ilist:初始化列表。

示例代碼

示例 1:插入單個(gè)元素

#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:插入多個(gè)相同的元素

#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個(gè)99
    for (int num : vec) {
        cout << num << " ";
    }
    cout << endl;
    return 0;
}

輸出:

1 2 99 99 99 3 4 5

示例 3:插入一個(gè)范圍的元素

#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

注意事項(xiàng)

迭代器失效

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

例如:

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

性能

插入操作的時(shí)間復(fù)雜度為 O(n),其中 n 是插入點(diǎn)之后的元素?cái)?shù)量。這是因?yàn)椴迦氩僮骺赡苄枰苿?dòng)插入點(diǎn)之后的所有元素。

內(nèi)存分配

如果插入操作導(dǎo)致 vector 的容量不足,vector 會(huì)自動(dòng)重新分配內(nèi)存,這可能會(huì)導(dǎo)致所有迭代器失效。

總結(jié)

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

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

相關(guān)文章

  • Visual Studio2022+QT6創(chuàng)建桌面應(yīng)用實(shí)現(xiàn)

    Visual Studio2022+QT6創(chuàng)建桌面應(yīng)用實(shí)現(xiàn)

    本文主要介紹了Visual Studio2022+QT6創(chuàng)建桌面應(yīng)用實(shí)現(xiàn),文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • 詳解C語(yǔ)言實(shí)現(xiàn)推箱子的基本功能(2)

    詳解C語(yǔ)言實(shí)現(xiàn)推箱子的基本功能(2)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)推箱子的基本功能的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • C語(yǔ)言中的時(shí)間函數(shù)clock()和time()你都了解嗎

    C語(yǔ)言中的時(shí)間函數(shù)clock()和time()你都了解嗎

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言中的時(shí)間函數(shù)clock()和time(),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • c++中string和vector的詳細(xì)介紹

    c++中string和vector的詳細(xì)介紹

    這篇文章主要介紹了c++中string和vector的詳細(xì)介紹,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-09-09
  • C語(yǔ)言中的指針 初階

    C語(yǔ)言中的指針 初階

    這篇文章主要介紹的是關(guān)于初級(jí)階段學(xué)習(xí)C語(yǔ)言中指針的一些內(nèi)容,那就是指針是什么?簡(jiǎn)單的說(shuō),就是通過(guò)它能找到以它為地址的內(nèi)存單元。下面文章我們就來(lái)詳細(xì)介紹該內(nèi)容,需要的朋友可以參考一下
    2021-10-10
  • C++實(shí)現(xiàn)教職工信息管理系統(tǒng)

    C++實(shí)現(xiàn)教職工信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)教職工信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++構(gòu)造函數(shù)+復(fù)制構(gòu)造函數(shù)+重載等號(hào)運(yùn)算符調(diào)用

    C++構(gòu)造函數(shù)+復(fù)制構(gòu)造函數(shù)+重載等號(hào)運(yùn)算符調(diào)用

    這篇文章主要介紹了C++構(gòu)造函數(shù)+復(fù)制構(gòu)造函數(shù)+重載等號(hào)運(yùn)算符調(diào)用,文章敘述詳細(xì),具有一定的的參考價(jià)值,需要的小伙伴可以參考一下
    2022-03-03
  • C語(yǔ)言中函數(shù)返回字符串的方法匯總

    C語(yǔ)言中函數(shù)返回字符串的方法匯總

    C語(yǔ)言返回字符串函數(shù)共有四種方式,分別如下:使用堆空間,返回申請(qǐng)的堆地址,注意釋放、函數(shù)參數(shù)傳遞指針,返回該指針、返回函數(shù)內(nèi)定義的靜態(tài)變量(共享)、返回全局變量
    2017-05-05
  • C/C++的文件IO函數(shù)你知道嗎

    C/C++的文件IO函數(shù)你知道嗎

    這篇文章主要為大家詳細(xì)介紹了C/C++的文件IO函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • 判斷指定的進(jìn)程或程序是否存在方法小結(jié)(vc等)

    判斷指定的進(jìn)程或程序是否存在方法小結(jié)(vc等)

    VC判斷進(jìn)程是否存在?比如我想知道記事本是否運(yùn)行,要用到哪些函數(shù)等實(shí)例,需要的朋友可以參考下
    2013-01-01

最新評(píng)論