GFG App
Open App
Browser
Continue

# Initializing Vector using an Existing Vector in C++ STL

A vector is a type of container which can store objects of similar data type. Vector acts like a dynamic array where we can insert elements and the size of the array increases depending upon the elements inserted.

Syntax:

`vector<data_structure/type> vector_name(size, item)`

To know more about vectors refer to vectors in C++.

## The 3D vector in C++

A 3D vector is a type of multidimensional vector having 3 dimensions. It can also be interpreted as a vector with a collection of 2D vectors inside it.

Syntax:

`vector<vector<vector<int>>> v;`

Example:

1 D vector ->     { 1 , 2, 3 }

2 D vector ->    { { 1,2,3 } , {4,5,6} }

3 D vector ->     { { { 1,2,3 } , {4,5,6} } ,  { { 11,12,13 } , {14,15,16} } ,  { { 21,22,23 } , {24,25,26} } }

Below is the code of the example:

## C++

 `#include ` `#include ` `using` `namespace` `std;`   `int` `main()` `{` `    ``// 1D Array` `    ``vector<``int``> a = { 1, 2, 3 };` `  `  `      ``cout<<``"1D vector\n"``;` `    ``for` `(``int` `i = 0; i < a.size(); i++) {` `        ``cout << a[i] << ``" "``;` `    ``}`   `    ``// 2D Array` `    ``vector > b = { { 1, 2, 3 }, { 4, 5, 6 } };` `  `  `      ``cout<<``"\n\n2D vector\n"``;` `    ``for` `(``int` `i = 0; i < b.size(); i++) {` `        ``for` `(``int` `j = 0; j < b[0].size(); j++) {` `            ``cout << b[i][j] << ``" "``;` `        ``}` `        ``cout << endl;` `    ``}`   `    ``// 3D Array` `    ``vector > > c = {` `        ``{ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } },` `        ``{ { 11, 12, 13 }, { 14, 15, 16 }, { 17, 18, 19 } },` `        ``{ { 21, 22, 23 }, { 24, 25, 26 }, { 27, 28, 29 } }` `    ``};`   `      ``cout<<``"\n\n3D vector\n"``;` `    ``cout << ``"[\n"``;` `    ``for` `(``int` `i = 0; i < c.size(); i++) {` `        ``for` `(``int` `j = 0; j < c[0].size(); j++) {` `            ``cout << ``" [ "``;` `            ``for` `(``int` `k = 0; k < c[0][0].size(); k++) {` `                ``cout << c[i][j][k] << ``" "``;` `            ``}` `            ``cout << ``"]"``;` `        ``}` `        ``cout << endl;` `    ``}` `    ``cout << ``"]"``;`   `    ``return` `0;` `}`

Output

```1D vector
1 2 3

2D vector
1 2 3
4 5 6

3D vector
[
[ 1 2 3 ] [ 4 5 6 ] [ 7 8 9 ]
[ 11 12 13 ] [ 14 15 16 ] [ 17 18 19 ]
[ 21 22 23 ] [ 24 25 26 ] [ 27 28 29 ]
]```

## Copying vector elements in a new vector

It is the method where we can insert the values of the existing vector into the newly created vector during Initialisation.

Syntax:

`vector<vector<vector<int>>> v2(v1.begin(),v2.end());`

Example:

vector<vector<vector<int>>> v1={ { { 1, 2 }, { 3, 4 } },
{ { 5, 6 }, { 7, 8 } } };      // 3D vector original

vector<vector<vector<int>>> v2;                                 // ( Copy elements of v1 inside v2 )

Code:

## C++

 `#include ` `using` `namespace` `std;`   `// function to display vector` `void` `display(vector > >& v)` `{` `    ``for` `(``int` `i = 0; i < v.size(); i++) {` `        ``cout << ``"i : "` `<< i << endl;` `        ``for` `(``int` `j = 0; j < v[i].size(); j++) {` `            ``for` `(``int` `k = 0; k < v[i][j].size(); k++)` `                ``cout << v[i][j][k] << ``" "``;` `            ``cout << endl;` `        ``}` `        ``cout << endl;` `    ``}` `}`   `int` `main()` `{`   `    ``vector > > v` `        ``= { { { 1, 2 }, { 3, 4 } },` `            ``{ { 5, 6 }, { 7, 8 } } };`   `    ``// initializing vect using v` `    ``vector > > vect(v.begin(), v.end());` `    ``display(vect);` `}`

Output

```i : 0
1 2
3 4

i : 1
5 6
7 8 ```

Time Complexity: O(n)

Here n is the number of elements in the original vector.

Auxiliary Space: O(n)

## Copying vector elements using copy function in C++ STL

It is the method where we can insert the values of the existing vector into the newly created vector using copy() function in C++.

Syntax:

copy(first_iterator, last_iterator, back_inserter())

Example:

vector<vector<vector<int> > > v = { { { 1, 2 }, { 3, 4 } }, { { 5, 6 }, { 7, 8 } } };    // Original 3-D vector

copy(v.begin(), v.end(), back_inserter(vect));     // Copying vector elements to another vector by using copy() function

Code:

## C++

 `#include ` `using` `namespace` `std;`   `// function to display vector` `void` `display(vector > >& v)` `{` `    ``for` `(``int` `i = 0; i < v.size(); i++) {` `        ``cout << ``"i : "` `<< i << endl;` `        ``for` `(``int` `j = 0; j < v[i].size(); j++) {` `            ``for` `(``int` `k = 0; k < v[i][j].size(); k++)` `                ``cout << v[i][j][k] << ``" "``;` `            ``cout << endl;` `        ``}` `        ``cout << endl;` `    ``}` `}`   `int` `main()` `{`   `    ``vector > > v` `        ``= { { { 1, 2 }, { 3, 4 } },` `            ``{ { 5, 6 }, { 7, 8 } } };`   `    ``// initializing vect` `    ``vector > > vect;` `    ``// Copying vector by copy function ` `    ``copy(v.begin(), v.end(), back_inserter(vect));` `    ``display(vect);` `}`

Output

```i : 0
1 2
3 4

i : 1
5 6
7 8 ```

Time Complexity: O(n)

Here n is the number of elements in the original vector.

Auxiliary Space: O(n)

My Personal Notes arrow_drop_up