Initializing Vector using an Existing Vector in C++ STL
Last Updated :
08 Mar, 2023
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 <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;
}
Output1D 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);
}
Outputi : 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);
}
Outputi : 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)
Similar Reads
vector :: cbegin() and vector :: cend() in C++ STL
Vectors are known as dynamic arrays which can change its size automatically when an element is inserted or deleted. This storage is maintained by container. vector::cbegin() The function returns an iterator which is used to iterate container. The iterator points to the beginning of the vector.Iterat
2 min read
Passing Vector to a Function in C++
To perform operations on vector belonging to one function inside other function, we pass this vector to the function as arguments during the function call.C++ provides three methods to pass a vector to a function in C++. Let's look at each of them one by one.Table of ContentPass Vector by ValuePass
5 min read
How to Sort a Vector in Descending Order Using STL in C++?
Sorting vector in descending order means arranging the elements in such a way that the first element will be largest, and second element will be second largest and so on.In C++, the simplest way to sort the vector in descending order is to by using the sort() function with a custom comparator.C++#in
3 min read
Vector shrink_to_fit() in C++ STL
In C++, vector shrink_to_fit() is a built-in function used to reduce the capacity of the vector to fit its size and destroys all elements beyond the size. In this article we will learn about vector shrink_to_fit() in C++.Letâs take a quick look at an example that illustrates vector shrink_to_fit() m
2 min read
Passing a Vector to Constructor in C++
Just like any other data, we can also pass a vector to a constructor of the desired class. We can pass it by value or by reference. What we do with it depends on our requirement. The following are some of the common cases:Copy Data to Member VectorIf we want to store the copy of the vector in the cl
3 min read
Vector of Vectors in C++ STL with Examples
Prerequisite: Vectors in C++ STL Vectors are known as dynamic arrays with the ability to resize itself automatically when an element is inserted or deleted, with their storage being handled automatically by the container. Vector of Vectors is a two-dimensional vector with a variable number of rows w
5 min read
Using Non-Member Friend Functions With Vector in C++ STL
In C++, Non-member buddy functions may access a class's private members while not being members. The class definition declares them friend. Vector containers, dynamic arrays in C++ Standard Library (STL), may dynamically resize as members are added or deleted. You may need to establish a new class w
2 min read
Different Ways to Initialize a List in C++ STL
Initializing a list means assigning some initial values to the list elements. In this article, we will learn different methods to initialize the list in C++. Letâs start from the easiest method:The easiest way to initialize a list is by passing the initial values inside an initializer list to its co
3 min read
Different Ways to Initialize an unordered_set in C++
An unordered_set is an associated container available in the C++ Standard Template Library(STL) that is used for unique elements without any specific ordering, it internally uses the working principle of a hashtable to store elements. Different ways to Initialize an unordered_set in C++ Initializati
6 min read
How Does a Vector Internally Works in C++?
In C++, a vector is a dynamic array that can resize itself when more elements are added or deleted. So, one may ask that how a vector internally works to achieve its dynamic resizing capability while maintaining similar efficiency to static arrays in operations?For vector to work as a resizable dyna
5 min read