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.
Further Read: