C++

2-Dimensional Vector in C++

The vector is used to create a dynamic array and the size of the vector can be increased and decreased by adding and removing elements from the vector. When a vector is declared inside another vector then the vector is called a 2-Dimensional vector that works like a 2-Dimensional array. The 2-Dimensional vector contains multiple numbers of rows where each row is another vector. The uses of a 2-Dimensional vector in C++ have shown in this tutorial.

Syntax:

The syntax of the two-dimensional vector has given below.

vector<vector<data_type>> vector_name;

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 necessary libraries

#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 necessary libraries

#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 necessary libraries

#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 necessary libraries

#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.

About the author

Fahmida Yesmin

I am a trainer of web programming courses. I like to write article or tutorial on various IT topics. I have a YouTube channel where many types of tutorials based on Ubuntu, Windows, Word, Excel, WordPress, Magento, Laravel etc. are published: Tutorials4u Help.