Also referred to as vector of vectors, 2D vectors in C++ form the basis of creating matrices, tables, or any other structures, dynamically. Before arriving on the topic of 2D vectors in C++, it is advised to go through the tutorial of using single-dimensional vectors in C++.

Including the Vector header file

It would be impossible for us to use vectors in C++, if not for the header files that are included at the beginning of the program. To make use of 2D vectors, we include:


Instead of including numerous kinds of Standard Template Libraries (STL) one by one, we can include all of them by:


Initializing 2D vectors in C++

Firstly, we will learn certain ways of initializing a 2-D vector. The following code snippet explains the initialization of a 2-D vector when all the elements are already known.



`**using**` `**namespace**` `std;`

`**int**` `main(){`

`vector<vector<``**int**``>> v {{1, 0, 1}, {0, 1}, {1, 0, 1}};`

`**for**``(``**int**` `i=0;i<v.size();i++){`

`**for**``(``**int**` `j=0;j<v[i].size();j++)`

`cout<<v[i][j]<<``" "``;`


`}                     `


After running the above code, we get the following output:

1 0 1

0 1

1 0 1

The use of 'vector<vector<>>' symbolizes that we are working on a vector of vectors. Each value inside the first set of braces, like '{1, 0, 1}' and '{0, 1}' are vectors independently.

Note: To create 2D vectors in C++ of different data-type, we can place the data-type inside the innermost angle brackets like <char>.

Since we are working on a two-dimensional data structure, we require two loops for traversing the complete data structure, efficiently. The outer loop moves along the rows, whereas the inner loop traverses the columns.

Note: The 'size()' function provides the number of vectors inside the 2D vector, not the total number of elements inside each individual vectors.

#c #cplusplus #programming-c

2D Vectors in C++ - A Practical Guide 2D Vectors
3.40 GEEK