Syntax:
The syntax of the two-dimensional vector has given below.
A particular data type is defined at the time of vector declaration. If the vector size is not defined then the vector is called an empty vector. The size of the vector can be changed by using different methods or initializing the vector.
Example-1: Create a 2-Dimensional vector of an equal number of columns
The following example shows the way of declaring a 2-dimensional vector of three rows and four columns that contains character data. Here, the values of the vector have been defined at the time of vector declaration and the nested ‘for‘ loop has been used to print the values of the vector.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
/*
Declare a two-dimensional vector
of characters
*/
vector<vector>chrVector
{{'a', 'b', 'c', 'd'}, {'e', 'f', 'g', 'h'}, {'i', 'j', 'k', 'l'}};
//Print the values of the vector
cout<< "The values of the vector are:\n";
for (int i = 0; i<chrVector.size(); i++)
{
for (int j = 0; j <chrVector[i].size(); j++)
cout<<chrVector[i][j] << " ";
cout<< '\n';
}
return 0;
}
Output:
The following output will appear after executing the above code.
Example-2: Create a 2-Dimensional vector with a different number of columns
The following example shows the way of declaring a 2-dimensional vector of four rows where the first row contains one column, the second row contains two columns, the third row contains three columns, and the fourth row contains four columns. The vector has initialized with the integer data and printed using the nested ‘for’ loop.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
/*
Initialize the 2D vector with the
integer number where each row contains different
number of elements
*/
vector<vector>intVector
{{20}, {10, 30}, {50, 40, 60 }, {80, 10, 70, 90 }};
//Print the values of the vector using for loop
cout<< "The values of the vector are:\n";
for (vectorrow :intVector)
{
for (int val : row)
cout<<val<< " ";
cout<< '\n';
}
return 0;
}
Output:
The following output will appear after executing the above code.
Example-3: Initialize a 2-Dimensional empty vector with the default value
The way to declare a 2-dimensional empty vector of float number and initialize the vector with a float number has shown in the following example. Here, the nested ‘for’ loop has been used to insert data into the vector using the push_back() function and print the values of the vector.
The default value, 6.5 has been inserted into the vector by creating 2 rows and 3 columns. The size() function has been used to count the total rows and columns for printing the values of the vector.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
//Set the default value
float default_value = 6.5;
//Define the outer vector
vector<vector>outVect;
for (int i = 0; i< 2; i++)
{
//Define the inner vector
vectorinVect;
for (int j = 0; j < 3; j++) {
//Insert the default value
inVect.push_back(default_value);
}
//Insert the inner vector to outer vector
outVect.push_back(inVect);
}
//Print the values of the vector
cout<< "The values of the vector are:\n";
for (int i = 0; i<outVect.size(); i++)
{
for (int j = 0; j <outVect[i].size(); j++)
cout<<outVect[i][j] << " ";
cout<< '\n';
}
return 0;
}
Output:
The following output will appear after executing the above code. The output shows the content of the vector based on the default value and the number of rows and columns created by the code.
Example-4: Initialize a 2-Dimensional empty vector by taking input values
The way to create a 2-dimensional vector by taking input from the user has shown in the following example. A 2-Dimensional empty vector of an integer has been declared in the code that will contain 2 rows and 3 columns.
The nested ‘for‘ loop has been used to take 6(2×3) integer numbers from the user and insert them into the vector using index values. Another nested ‘for‘ loop has been used to print the inserted values of the vector.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
//Define the number of cols
int col = 3;
//Define the number of rows
int row = 2;
//Initialize an integer variable
int val = 0;
//Initialize the empty vector
vector< vector>int2DVector;
//Resize the outer vector
int2DVector.resize(row);
for (int i = 0; i< row; i++)
{
//Resize the inner vector
int2DVector[i].resize(col);
for (int j = 0; j < col; j++)
{
//Take input from the user
cout<>val;
//Insert into the vector
int2DVector[i][j] = val;
}
}
//Print the values of the vector
cout<< "The values of the vector are:\n";
for (int i = 0; i< int2DVector.size(); i++)
{
for (int j = 0; j < int2DVector[i].size(); j++)
cout<< int2DVector[i][j] << " ";
cout<< '\n';
}
return 0;
}
Output:
The following output will appear after executing the above code. The output shows the 6 input values and the content of the vector based on the number of rows and columns.
Conclusion
A 2-Dimensional vector is used in C++ programming to store and access data based on rows and columns. Different ways to create a 2-Dimensional vector have been shown in this tutorial by using simple examples. The purpose of using the 2-Dimensional vector in C++ will be cleared after reading this tutorial.