# 2D Vector Implementation in C++ Complete Guide

Are you looking for a tutorial and ways how you can implement and initialize 2D vectors in C++? In this tutorial, I will show you various ways you can initialize and implement 2D vectors in C++ easily.

As you saw in my earlier article where I showed you how you can initialize vector in c++ in 6 different ways. Similarly, you can initialize a 2D vector in 6 different ways to get started.

A two-dimensional vector is a vector within a vector. As with two-dimensional arrays, we can declare and assign values to a two-dimensional vector.

## How to Initialize 2D Vector in C++? [Simple Way]

The most common way to initialize a 2D vector in C++ is shown below. Make sure that you include the vector.h library before initializing the vectors in C++.

Or including numerous different types of libraries for your code in C++, simply add the below-mentioned library in your code to minimize the effort.

``#include<bits/stdc++.h>``
`vector<vector<int>> twoDimenVector;`

The above line initializes the empty two-dimensional vector or in layman terms, it initializes a two-dimensional array that is completely empty.

## Initiliazing 2D Vector with Some Values

If you want to initialize a 2D vector in C++ with some values then you need to add the code as shown in the below example.

```#include<bits/stdc++.h>
using namespace std;

int main(){
//Intialize Two Dimensional Vector with Some Values
vector<vector<int>> twoDimenVector {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

//Printing Two Dimentional Vector in C++
for(int i=0;i<twoDimenVector.size();i++){
for(int j=0;j<twoDimenVector[i].size();j++)
cout<<twoDimenVector[i][j]<<" ";
cout<<endl;
}
return 0;
}```

Output:

``````1 2 3
4 5 6
7 8 9 ``````

“vector<vector<>>” is the symbol used to denote that you need a two-dimensional array or vector in your code. And values such as {1,2,3} is a vector that is inside another vector having all three vectors in it.

## Initialize 2D Vector with Size and Value

If you are looking to specify a 2D vector with some size and all the elements to some fixed values initialize you can do that easily using Fill Constructor present in Vector Library of C++. Below is the code example of how you can do it.

```#include<bits/stdc++.h>
using namespace std;

int main(){

//Specifying Number of Columns in 2D Vector
int numColToFill = 3;

//Specifying Number of Rows in 2D Vector
int numRowToFill = 3;

// Initializing the Column first with Initial Value
vector<int> row(numColToFill, 0);

// Initializing the 2-D vector with Row and Column Values
vector<vector<int>> twoDimenVector(numRowToFill, row) ;

for(int i=0;i<twoDimenVector.size();i++){

for(int j=0;j<twoDimenVector[i].size();j++)

cout<<twoDimenVector[i][j]<<" ";

cout<<endl;
}
return 0;
}```

Output:

``````0 0 0
0 0 0
0 0 0 ``````

## Using push_back

You can initialize the 2D vector by creating a one-dimensional vector and pushing all the one-dimensional vectors as elements to a two-dimensional array. You can push back empty as well as vectors with some values present in them.

Below is an example to show how you can push back a one-dimensional vector or array in a two-dimensional vector or array in C++.

```#include<bits/stdc++.h>
using namespace std;

void printTwoDimensionalArray(vector<vector<int>> &twoDimenVector){
//Printing the Two Dimensional Array
for(auto oneDim:twoDimenVector){
for(auto elem:oneDim){
cout<<elem<<" ";
}
cout<<endl;
}
}

int main(){

//Initializing Two Dimensional Vector (2D Vector)
vector<vector<int>> twoDimenVector;

//Initializing 1D Vector
vector<int> inputTo2DVector = {1,2,3,4};

twoDimenVector.push_back(inputTo2DVector);

printTwoDimensionalArray(twoDimenVector);

int x = 5;
//Now let us update values of inputTo2DVector
for (int i = 0; i < inputTo2DVector.size(); i++)
{
inputTo2DVector[i] = x;
x++;
}

cout<<endl<<"Different Output Starts From Here"<<endl;
//Updating Two Dimensional Array and Printing it

twoDimenVector.push_back(inputTo2DVector);

printTwoDimensionalArray(twoDimenVector);

return 0;
}```

Output:

``````1 2 3 4

Different Output Starts From Here
1 2 3 4
5 6 7 8
``````

## Printing 2D Vector Using Iterator and Adding Element in 2D Vector

You can use Iterator inbuild in vector class to print all the elements of a two-dimensional vector. Below is the code example in which you can understand how to initialize an iterator for a two-dimensional vector and print the values.

Also, you can learn from the below code how to add the element or vector in a two-dimensional vector.

```#include<bits/stdc++.h>
using namespace std;

void printTwoDimensionalArray(vector<vector<int>> &twoDimenVector){
//intializing iterators
vector<vector<int>>::iterator twoDimIter;

//Initiazing Iterator
vector<int>::iterator oneDimIter;

//Printing the Two Dimensional Vector
for(twoDimIter=twoDimenVector.begin(); twoDimIter!=twoDimenVector.end(); ++twoDimIter){
for(oneDimIter = twoDimIter->begin(); oneDimIter != twoDimIter->end(); ++oneDimIter){
cout<<*oneDimIter<<" ";
}
cout<<endl;
}
}

int main(){

//Initializing Two Dimensional Vector (2D Vector)
vector<vector<int>> twoDimenVector;

//Initializing 1D Vector
vector<int> inputTo2DVector = {1,2,3,4};

twoDimenVector.push_back(inputTo2DVector);

printTwoDimensionalArray(twoDimenVector);

return 0;
}```

Output:

## Conclusion

Two-dimensional vectors are quite simple to utilize in C++. This type of vector is useful when dealing with matrices, graphs, and other two-dimensional objects.

That is all for this post on how to square something in C++. Then please follow us on Facebook and Twitter. Let us know the questions and answer you want to cover in this blog.