当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。