當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ vector insert()用法及代碼示例


std::vector::insert()是C++ STL中的內置函數,該函數在指定位置的元素之前插入新元素,從而通過插入的元素數量有效地增加了容器大小。

  1. 用法:
    vector_name.insert (position, val)
    

    參數:該函數接受以下指定的兩個參數:

    • position -它指定迭代器,該迭代器指向要進行插入的位置。
    • val -它指定要插入的值。

    返回值:該函數返回一個迭代器,該迭代器指向新插入的元素。


    示例1:以下示例程序旨在說明上麵提到的函數,其中新元素插入了前麵。

    // Program below illustrates the 
    // vector::insert() function 
      
    #include <bits/stdc++.h> 
    using namespace std; 
      
    int main() 
    { 
        // initialising the vector 
        vector<int> vec = { 10, 20, 30, 40 }; 
      
        // inserts 3 at front 
        auto it = vec.insert(vec.begin(), 3); 
        // inserts 2 at front 
        vec.insert(it, 2); 
      
        int i = 2; 
        // inserts 7 at i-th index 
        it = vec.insert(vec.begin() + i, 7); 
      
        cout << "The vector elements are: "; 
        for (auto it = vec.begin(); it != vec.end(); ++it) 
            cout << *it << " "; 
      
        return 0; 
    }
    輸出:
    The vector elements are: 2 3 7 10 20 30 40
    

    示例2:以下示例程序旨在說明上述函數,其中在特定位置插入了新元素。

    // Program below illustrates the 
    // vector::insert() function 
      
    #include <bits/stdc++.h> 
    using namespace std; 
      
    int main() 
    { 
        // initialising the vector 
        vector<int> vec = { 10, 20, 70, 80 }; 
        int x = 50; 
      
        // inserting multiple elements 
        // at specific positions 
        vec.insert(vec.begin() + 2, { 30, 40, x, 60 }); 
      
        cout << "The vector elements are: "; 
        for (auto it : vec) 
            cout << it << " "; 
      
        return 0; 
    }
    輸出:
    The vector elements are: 10 20 30 40 50 60 70 80
    
  2. 用法:
    vector_name.insert(position, size, val)
    

    參數:該函數接受以下指定的三個參數:

    • position -它指定迭代器,該迭代器指向要進行插入的位置。
    • size -它指定在指定位置插入val的次數。
    • val -它指定要插入的值。

    返回值:該函數返回一個迭代器,該迭代器指向新插入的元素。

    以下示例程序旨在說明上述函數:

    // program below illustrates the 
    // vector::insert() function 
      
    #include <bits/stdc++.h> 
    using namespace std; 
      
    int main() 
    { 
        // initialising the vector 
        vector<int> vec = { 10, 20, 30, 40 }; 
      
        // inserts 3 one time at front 
        auto it = vec.insert(vec.begin(), 1, 3); 
      
        // inserts 4 two times at front 
        vec.insert(it, 2, 4); 
      
        cout << "The vector elements are: "; 
        for (auto it = vec.begin(); it != vec.end(); ++it) 
            cout << *it << " "; 
      
        return 0; 
    }
    輸出:
    The vector elements are: 4 4 3 10 20 30 40
    
  3. 用法:
    vector_name.insert(position, iterator1, iterator2)
    

    參數:該函數接受以下指定的三個參數:

    • position -它指定要在矢量中插入的位置。
    • iterator1 -它指定插入元素的起始位置
    • iterator2 -它指定要插入元素的結束位置

    返回值:該函數返回一個迭代器,該迭代器指向新插入的元素。

    下麵是上述函數的說明:

    // program below illustrates the 
    // vector::insert() function 
      
    #include <bits/stdc++.h> 
    using namespace std; 
      
    int main() 
    { 
        // initialising the vector 
        vector<int> vec1 = { 10, 20, 30, 40 }; 
        vector<int> vec2; 
      
        // inserts at the beginning of vec2 
        vec2.insert(vec2.begin(), vec1.begin(), vec1.end()); 
      
        cout << "The vector2 elements are: "; 
        for (auto it = vec2.begin(); it != vec2.end(); ++it) 
            cout << *it << " "; 
      
        return 0; 
    }
    輸出:
    The vector2 elements are: 10 20 30 40
    


相關用法


注:本文由純淨天空篩選整理自Twinkl Bajaj大神的英文原創作品 vector insert() function in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。