Passing a vector to constructor in C++
When class member is a vector object (not a reference).
We can simply assign in constructor.
CPP
// Passing vector object to a constructor. #include <iostream> #include <vector> using namespace std; class MyClass { vector< int > vec; public : MyClass(vector< int > v) { vec = v; } void print() { /// print the value of vector for ( int i = 0; i < vec.size(); i++) cout << vec[i] << " "; } }; int main() { vector< int > vec; for ( int i = 1; i <= 5; i++) vec.push_back(i); MyClass obj(vec); obj.print(); return 0; } |
Output:
1 2 3 4 5
Time complexity : O(n)
Space complexity : O(n)
We can also initialize using the initializer list.
CPP
// Initializing vector object using initializer // list. #include <iostream> #include <vector> using namespace std; class MyClass { vector< int > vec; public : MyClass(vector< int > v) : vec(v) { } void print() { /// print the value of vector for ( int i = 0; i < vec.size(); i++) cout << vec[i] << " "; } }; int main() { vector< int > vec; for ( int i = 1; i <= 5; i++) vec.push_back(i); MyClass obj(vec); obj.print(); return 0; } |
Output:
1 2 3 4 5
Time complexity : O(n)
Space complexity : O(n)
When class member is a vector a reference.
In C++, references must be initialized using initializer list.
CPP
// CPP program to initialize a vector reference. #include <iostream> #include <vector> using namespace std; class MyClass { vector< int >& vec; public : // this is the right way to assign // the reference of stl container MyClass(vector< int >& arr) : vec(arr) { } void print() { /// print the value of vector for ( int i = 0; i < vec.size(); i++) cout << vec[i] << " "; } }; int main() { vector< int > vec; for ( int i = 1; i <= 5; i++) vec.push_back(i); MyClass obj(vec); obj.print(); return 0; } |
Output:
1 2 3 4 5
Time complexity : O(n)
Space complexity : O(n)
Contact Us