vector insert() function in C++ STL

std::vector::insert() is a built-in function in C++ STL which inserts new elements before the element at the specified position, effectively increasing the container size by the number of elements inserted.

  1. Syntax:
    vector_name.insert (position, val)
    

    Parameter:The function accepts two parameters specified as below:

    • position – It specifies the iterator which points to the position where the insertion is to be done.
    • val – It specifies the value to be inserted.

    Return value: The function returns an iterator which points to the newly inserted element.

    Example 1: Below program illustrates the above mentioned function where new elements are inserted at the front.

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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;
    }

    chevron_right

    
    

    Output:



    The vector elements are: 2 3 7 10 20 30 40
    

    Example 2: Below program illustrates the above mentioned function where new elements are inserted at a specific position.

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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;
    }

    chevron_right

    
    

    Output:

    The vector elements are: 10 20 30 40 50 60 70 80
    
  2. Syntax:
    vector_name.insert(position, size, val)
    

    Parameter:The function accepts three parameters specified as below:

    • position – It specifies the iterator which points to the position where the insertion is to be done.
    • size – It specifies the number of times a val is to be inserted at the specified position.
    • val – It specifies the value to be inserted.

    Return value: The function returns an iterator which points to the newly inserted element.

    Below program illustrates the above mentioned function:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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;
    }

    chevron_right

    
    

    Output:

    The vector elements are: 4 4 3 10 20 30 40
    
  3. Syntax:
    vector_name.insert(position, iterator1, iterator2)
    

    Parameter:The function accepts three parameters specified as below:

    • position – It specifies the position at which insertion is to be done in vector.
    • iterator1 – It specifies the starting position from which the elements are to be inserted
    • iterator2 – It specifies the ending position till which elements are to be inserted

    Return value: The function returns an iterator which points to the newly inserted element.

    Below is the illustration of above function:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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;
    }

    chevron_right

    
    

    Output:

    The vector2 elements are: 10 20 30 40
    

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : grim_firefly

Article Tags :
Practice Tags :


28


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.