Vector in C++ STL (With Examples)

In this instructional exercise, we will find out with regards to vectors in C++ with the assistance of models. In C++, vectors are utilized to store components of comparative information types. Notwithstanding, dissimilar to clusters, the size of a vector can develop progressively. That is, we can change the size of the vector during the execution of a program according to our prerequisites. Vectors are important for the C++ Standard Template Library. To utilize vectors, we really want to incorporate the vector header document in our program.

Vectors are the same as powerful exhibits with the capacity to resize themselves naturally when a component is embedded or erased, with their capacity being taken care of consequently by the holder. Vector components are put in bordering stockpiling so they can be gotten to and crossed utilizing iterators. In vectors, information is embedded toward the end. Embedding toward the end takes differential time, as now and then there might be a need of expanding the cluster. Eliminating the last component takes just consistent time on the grounds that no resizing occurs. Embedding and deleting toward the start or in the center is directly on schedule.

Certain capacities related to the vector are:

// C++ program to illustrate the
// iterators in vector
#include <iostream>
#include <vector>
 
using namespace std;
 
int main()
{
    vector<int> g1;
 
    for (int i = 1; i <= 5; i++)
        g1.push_back(i);
 
    cout << "Output of begin and end: ";
    for (auto i = g1.begin(); i != g1.end(); ++i)
        cout << *i << " ";
 
    cout << "\nOutput of cbegin and cend: ";
    for (auto i = g1.cbegin(); i != g1.cend(); ++i)
        cout << *i << " ";
 
    cout << "\nOutput of rbegin and rend: ";
    for (auto ir = g1.rbegin(); ir != g1.rend(); ++ir)
        cout << *ir << " ";
 
    cout << "\nOutput of crbegin and crend : ";
    for (auto ir = g1.crbegin(); ir != g1.crend(); ++ir)
        cout << *ir << " ";
 
    return 0;
}
Output:

Output of begin and end: 1 2 3 4 5 
Output of cbegin and cend: 1 2 3 4 5 
Output of rbegin and rend: 5 4 3 2 1 
Output of crbegin and crend : 5 4 3 2 1

Table of Contents

Iterators

  • start() – Returns an iterator highlighting the main component in the vector
  • end() – Returns an iterator highlighting the hypothetical component that follows the last component in the vector
  • rbegin() – Returns a converse iterator highlighting the last component in the vector (switch starting). It moves from last to first component
  • tear() – Returns an opposite iterator highlighting the hypothetical component going before the primary component in the vector (considered as converse end)
  • cbegin() – Returns a steady iterator highlighting the main component in the vector.
  • cend() – Returns a consistent iterator highlighting the hypothetical component that follows the last component in the vector.
  • crbegin() – Returns a steady converse iterator highlighting the last component in the vector (turn around starting). It moves from last to first component
  • crend() – Returns a steady converse iterator highlighting the hypothetical component going before the principal component in the vector (considered as opposite end)
// C++ program to illustrate the
// capacity function in vector
#include <iostream>
#include <vector>
 
using namespace std;
 
int main()
{
    vector<int> g1;
 
    for (int i = 1; i <= 5; i++)
        g1.push_back(i);
 
    cout << "Size : " << g1.size();
    cout << "\nCapacity : " << g1.capacity();
    cout << "\nMax_Size : " << g1.max_size();
 
    // resizes the vector size to 4
    g1.resize(4);
 
    // prints the vector size after resize()
    cout << "\nSize : " << g1.size();
 
    // checks if the vector is empty or not
    if (g1.empty() == false)
        cout << "\nVector is not empty";
    else
        cout << "\nVector is empty";
 
    // Shrinks the vector
    g1.shrink_to_fit();
    cout << "\nVector elements are: ";
    for (auto it = g1.begin(); it != g1.end(); it++)
        cout << *it << " ";
 
    return 0;
}
Output:

Size : 5
Capacity : 8
Max_Size : 4611686018427387903
Size : 4
Vector is not empty
Vector elements are: 1 2 3 4

Limit

  • size() – Returns the quantity of components in the vector.
  • max_size() – Returns the greatest number of components that the vector can hold.
  • limit() – Returns the size of the extra room right now distributed to the vector communicated as number of components.
  • resize(n) – Resizes the holder with the goal that it contains ‘n’ components.
  • void() – Returns whether the holder is vacant.
  • shrink_to_fit() – Reduces the limit of the compartment to accommodate its size and annihilates all components past the limit.
  • save() – Requests that the vector limit be to the point of containing n components.
// C++ program to illustrate the
// element accesser in vector
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    vector<int> g1;
 
    for (int i = 1; i <= 10; i++)
        g1.push_back(i * 10);
 
    cout << "\nReference operator [g] : g1[2] = " << g1[2];
 
    cout << "\nat : g1.at(4) = " << g1.at(4);
 
    cout << "\nfront() : g1.front() = " << g1.front();
 
    cout << "\nback() : g1.back() = " << g1.back();
 
    // pointer to the first element
    int* pos = g1.data();
 
    cout << "\nThe first element is " << *pos;
    return 0;
}
Output:

Reference operator [g] : g1[2] = 30
at : g1.at(4) = 50
front() : g1.front() = 10
back() : g1.back() = 100
The first element is 10

Component access:

  • reference administrator [g] – Returns a reference to the component at position ‘g’ in the vector
  • at(g) – Returns a reference to the component at position ‘g’ in the vector
  • front() – Returns a reference to the main component in the vector
  • back() – Returns a reference to the last component in the vector
  • information() – Returns an immediate pointer to the memory cluster utilized inside by the vector to store its possessed components.
// C++ program to illustrate the
// Modifiers in vector
#include <bits/stdc++.h>
#include <vector>
using namespace std;
 
int main()
{
    // Assign vector
    vector<int> v;
 
    // fill the array with 10 five times
    v.assign(5, 10);
 
    cout << "The vector elements are: ";
    for (int i = 0; i < v.size(); i++)
        cout << v[i] << " ";
 
    // inserts 15 to the last position
    v.push_back(15);
    int n = v.size();
    cout << "\nThe last element is: " << v[n - 1];
 
    // removes last element
    v.pop_back();
 
    // prints the vector
    cout << "\nThe vector elements are: ";
    for (int i = 0; i < v.size(); i++)
        cout << v[i] << " ";
 
    // inserts 5 at the beginning
    v.insert(v.begin(), 5);
 
    cout << "\nThe first element is: " << v[0];
 
    // removes the first element
    v.erase(v.begin());
 
    cout << "\nThe first element is: " << v[0];
 
    // inserts at the beginning
    v.emplace(v.begin(), 5);
    cout << "\nThe first element is: " << v[0];
 
    // Inserts 20 at the end
    v.emplace_back(20);
    n = v.size();
    cout << "\nThe last element is: " << v[n - 1];
 
    // erases the vector
    v.clear();
    cout << "\nVector size after erase(): " << v.size();
 
    // two vector to perform swap
    vector<int> v1, v2;
    v1.push_back(1);
    v1.push_back(2);
    v2.push_back(3);
    v2.push_back(4);
 
    cout << "\n\nVector 1: ";
    for (int i = 0; i < v1.size(); i++)
        cout << v1[i] << " ";
 
    cout << "\nVector 2: ";
    for (int i = 0; i < v2.size(); i++)
        cout << v2[i] << " ";
 
    // Swaps v1 and v2
    v1.swap(v2);
 
    cout << "\nAfter Swap \nVector 1: ";
    for (int i = 0; i < v1.size(); i++)
        cout << v1[i] << " ";
 
    cout << "\nVector 2: ";
    for (int i = 0; i < v2.size(); i++)
        cout << v2[i] << " ";
}
Output:

The vector elements are: 10 10 10 10 10 
The last element is: 15
The vector elements are: 10 10 10 10 10 
The first element is: 5
The first element is: 10
The first element is: 5
The last element is: 20
Vector size after erase(): 0

Vector 1: 1 2 
Vector 2: 3 4 
After Swap 
Vector 1: 3 4 
Vector 2: 1 2

Also ReadReading an Excel File using Python

Leave a Reply

Your email address will not be published. Required fields are marked *