Cuando el miembro de la clase es un objeto vectorial (no una referencia).
Simplemente podemos asignar en 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; }
Producción:
1 2 3 4 5
También podemos inicializar usando la lista de inicializadores .
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; }
Producción:
1 2 3 4 5
Cuando el miembro de la clase es un vector, una referencia .
En C++, las referencias deben inicializarse usando la lista de inicializadores .
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; }
Producción:
1 2 3 4 5