Modifiers for Vector in C++ STL

Click here for Set 1 of Vectors.

 

Modifiers
1.1 assign(input_iterator first, input_iterator last) – Assigns new content to vector and resize
1.2 assign(size_type n, const value_type g) – Assigns new content to vector and resize



filter_none

edit
close

play_arrow

link
brightness_4
code

#include <iostream>
#include <vector>
  
using namespace std;
  
int main()
{
    vector <int> g1;
    vector <int> g2;
    vector <int> g3;
  
    g1.assign(5, 10);   // 5 elements with value 10 each
  
    vector <int> :: iterator it;
    it = g1.begin() + 1;
  
    g2.assign(it, g1.end() - 1); // the 3 middle values of g1
  
    int gquiz[] = {1, 2};
    g3.assign(gquiz, gquiz + 2);   // assigning from array
  
    cout << "Size of g1: " << int(g1.size()) << '\n';
    cout << "Size of g2: " << int(g2.size()) << '\n';
    cout << "Size of g3: " << int(g3.size()) << '\n';
    return 0;
}

chevron_right


The output of the above program is :

Size of g1: 5
Size of g2: 3
Size of g3: 2

2. push_back(const value_type g) – Adds a new element ‘g’ at the end of the vector and increases the vector container size by 1
3. pop_back() – Removes the element at the end of the vector, i.e., the last element and decreases the vector container size by 1

filter_none

edit
close

play_arrow

link
brightness_4
code

#include <iostream>
#include <vector>
  
using namespace std;
  
int main()
{
  vector <int> gquiz;
  int sum = 0;
  gquiz.push_back(10);
  gquiz.push_back(20);
  gquiz.push_back(30);
  
  while (!gquiz.empty())
  {
    sum += gquiz.back();
    gquiz.pop_back();
  }
  
  cout << "The sum of the elements of gquiz is :  "
       << sum << '\n';
  
  return 0;
}

chevron_right


The output of the above program is :

The sum of the elements of gquiz is : 60

4.1 insert(const_iterator q, const value_type g) – Adds element ‘g’ before the element referenced by iterator ‘q’ and returns an iterator that points to the newly added element
4.2insert(const_iterator q, size_type n, const value_type g) – Adds ‘n’ elements each with value ‘g’ before the element currently referenced by iterator ‘q’ and returns an iterator that points to the first of the newly added elements
4.3 insert(const_iterator q, InputIterator first, InputIterator last) – Adds a range of elements starting from first to last, the elements being inserted before the position currently referred by ‘q’

filter_none

edit
close

play_arrow

link
brightness_4
code

#include <iostream>
#include <vector>
  
using namespace std;
  
int main()
{
    vector <int> gquiz1(3, 10);
    vector <int> :: iterator it;
  
    it = gquiz1.begin();
    it = gquiz1.insert(it, 20);
  
    gquiz1.insert(it, 2, 30);
  
    it = gquiz1.begin();
  
    vector <int> gquiz2(2, 40);
    gquiz1.insert(it + 2, gquiz2.begin(), gquiz2.end());
  
    int gq [] = {50, 60, 70};
    gquiz1.insert(gquiz1.begin(), gq, gq + 3);
  
    cout << "gquiz1 contains : ";
    for (it = gquiz1.begin(); it < gquiz1.end(); it++)
        cout << *it << '\t';
  
    return 0;
}

chevron_right


The output of the above program is :

gquiz1 contains : 50    60    70    30    30    
40    40    20    10    10    10

5.1 erase(const_iterator q) – Deletes the element referred by ‘q’ and returns an iterator to the element followed by the deleted element
5.2 erase(const_iterator first, const_iterator last) – Deletes the elements in the range first to last, with the first iterator included in the range and the last iterator not included, and returns an iterator to the element followed by the last deleted element

filter_none

edit
close

play_arrow

link
brightness_4
code

#include <iostream>
#include <vector>
using namespace std;
  
int main ()
{
    vector <int> gquiz;
  
    for (int i = 1; i <= 10; i++)
        gquiz.push_back(i * 2);
  
    // erase the 5th element
    gquiz.erase(gquiz.begin() + 4);
  
    // erase the first 5 elements:
    gquiz.erase(gquiz.begin(), gquiz.begin() + 5);
  
    cout << "gquiz contains :";
    for (int i = 0; i < gquiz.size(); ++i)
        cout << gquiz[i] << '\t';
  
    return 0;
}

chevron_right


The output of the above program is :

gquiz contains :14    16    18    20

6. swap(vector q, vector r) – Swaps the contents of ‘q’ and ‘r’
7. clear() – Removes all elements from the vector

filter_none

edit
close

play_arrow

link
brightness_4
code

#include <iostream>
#include <vector>
  
using namespace std;
  
int main()
{
    vector <int> gquiz1;
    vector <int> gquiz2;
    vector <int> :: iterator i;
  
    gquiz1.push_back(10);
    gquiz1.push_back(20);
  
    gquiz2.push_back(30);
    gquiz2.push_back(40);
  
    cout << "Before Swapping, \n"
         <<"Contents of vector gquiz1 : ";
  
    for (i = gquiz1.begin(); i != gquiz1.end(); ++i)
        cout << *i << '\t';
  
    cout << "\nContents of vector gquiz2 : ";
    for (i = gquiz2.begin(); i != gquiz2.end(); ++i)
        cout << *i << '\t';
  
    swap(gquiz1, gquiz2);
  
    cout << "\n\nAfter Swapping, \n";
    cout << "Contents of vector gquiz1 : ";
    for (i = gquiz1.begin(); i != gquiz1.end(); ++i)
        cout << *i << '\t';
  
    cout << "\nContents of vector gquiz2 : ";
    for (i = gquiz2.begin(); i != gquiz2.end(); ++i)
        cout << *i << '\t';
  
    cout << "\n\nNow, we clear() and then add "
         << "an element 1000 to vector gquiz1 : ";
    gquiz1.clear();
    gquiz1.push_back(1000);
    cout << gquiz1.front();
  
    return 0;
}

chevron_right


The output of the above program is :

Before Swapping, 
Contents of vector gquiz1 : 10    20    
Contents of vector gquiz2 : 30    40    

After Swapping, 
Contents of vector gquiz1 : 30    40    
Contents of vector gquiz2 : 10    20    

Now, we clear() and then add an element 1000 to vector gquiz1 : 1000

 
Click here for Set 3 of Vectors.
 
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above



My Personal Notes arrow_drop_up