ভেক্টর কনস্ট্রাক্টর আর্গুমেন্ট হিসেবে
ক্লাস কনস্ট্রাক্টরে std::vector পাস করলে কপি বা মুভ সেমান্টিক্স ব্যবহার করে মেম্বার ভেক্টর ইনিশিয়ালাইজ করা যায়।
উদাহরণ কোড
#include <iostream>
#include <vector>
using namespace std;
class VectorWrapper {
vector<int> vec;
public:
// কনস্ট্রাক্টর: ভেক্টর ভ্যালু বাই রিসিভ করে (কপি বা মুভ)
VectorWrapper(vector<int> v) : vec(std::move(v)) {} // C++11: মুভ সেমান্টিক্স
void show() const {
for (int x : vec) cout << x << " ";
cout << endl;
}
};
int main() {
vector<int> v = {7, 6, 5, 4};
VectorWrapper obj(v); // v কপি হবে (lvalue)
obj.show(); // 7 6 5 4
// সরাসরি টেমপোরারি দিয়ে (মুভ হবে)
VectorWrapper obj2(vector<int>{1,2,3});
obj2.show(); // 1 2 3
return 0;
}
আউটপুট
7 6 5 4 1 2 3
টিপ: কনস্ট্রাক্টরে const vector<int>& নিলে কপি হবে, vector<int> (ভ্যালু) নিলে কলার std::move ব্যবহার করলে মুভ হবে।