How to insert elements in 2D vector in C++

In this article, we are going to learn how to insert elements in 2D vector in C++ language. This is an exercise to create a 2-dimensional vector with variable size and flexibility. As you might know in a 2 D vector, we can insert an element in each of its vectors, and also we can insert a full vector with multiple elements in a vector to grow the size of its dimension.

How to insert elements in 2D vector in C++


  • Insert a vector in a 2 D vector in C++.
  • Insert single element in vector that is part of a 2 D vector in C++.

1. Insert a vector in a 2 D vector in C++


In our first example, we will take an empty vector of vectors and we will create a square vector of vectors of size entered by the user by inserting elements at runtime. so let us see how this works.

#include <iostream>
#include <vector>
using namespace std;
  
int main()
{
	// empty 2 D vector
    vector<vector<int> > vec;
	int size ; 
    
    int num = 1;
	cout<< "Please insert the size for a square matrix :";
	cin >> size;
  
   
    for (int i = 0; i < size; i++) 
	{
       
        vector<int> v1;
  
        for (int j = 0; j < size; j++) {
            v1.push_back(num);
            num ++;
        }
  
        vec.push_back(v1);
    }
  
   
    for (int i = 0; i < vec.size(); i++) {
        for (int j = 0; j < vec[i].size(); j++)
            cout << vec[i][j] << " ";
			
        cout << endl;
    }
    return 0;
}

Output

Please insert the size for a square matrix :4
1 2 3 4 
5 6 7 8 
9 10 11 12 
13 14 15 16

2.Insert single element in vector that is part of a 2 D vector in C++


In our second example, we are going to add an element to a vector that is already part of a 2 D vector. In this example, we will understand how we can access the elements of a vector inside a 2 D vector. so first we will create a 2 D vector, which will have a size of 3×3. Then we will add 3 vectors to it with each vector having 3 elements.

This is our starting point, now our task is to add one more element to each of the 3 vectors which are part of this 3×3 2 D vector.

#include <iostream>
#include <vector>
using namespace std;
 
#define SIZE 3
int main()
{
	// empty 2 D vector
    vector<vector<int> > vec;
	int size = SIZE; 
    
    int num = 1;


    for (int i = 0; i < size; i++) 
	{
       
        vector<int> v1;
  
        for (int j = 0; j < size; j++) {
            v1.push_back(num);
            num ++;
        }
  
        vec.push_back(v1);
    }
  
   
    for (int i = 0; i < vec.size(); i++) {
        for (int j = 0; j < vec[i].size(); j++)
            cout << vec[i][j] << " ";
			
        cout << endl;
    }
	
	for (int k = 0 ;k < vec.size(); k++)
	{
		vec[k].push_back(100);
	}
	
	
	for (int i = 0; i < vec.size(); i++) {
        for (int j = 0; j < vec[i].size(); j++)
            cout << vec[i][j] << " ";
			
        cout << endl;
    }
	
    return 0;
}

Output

1 2 3 4 100 
5 6 7 8 100 
9 10 11 12 100 
13 14 15 16 100