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)