Open In App

Initializing Vector using an Existing Vector in C++ STL

Improve
Improve
Like Article
Like
Save
Share
Report

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. 

Multidimensional Array in C++

 

 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 <iostream>
#include <vector>
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<vector<int> > 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<vector<vector<int> > > 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 <bits/stdc++.h>
using namespace std;
 
// function to display vector
void display(vector<vector<vector<int> > >& 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<vector<vector<int> > > v
        = { { { 1, 2 }, { 3, 4 } },
            { { 5, 6 }, { 7, 8 } } };
 
    // initializing vect using v
    vector<vector<vector<int> > > 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 <bits/stdc++.h>
using namespace std;
 
// function to display vector
void display(vector<vector<vector<int> > >& 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<vector<vector<int> > > v
        = { { { 1, 2 }, { 3, 4 } },
            { { 5, 6 }, { 7, 8 } } };
 
    // initializing vect
    vector<vector<vector<int> > > 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)



Last Updated : 08 Mar, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads