কম্পিউটার টিউটোরিয়াল

C++-এ কনস্ট্রাক্টরে ভেক্টর পাস করা (Passing a vector to constructor in C++)

ভেক্টর কনস্ট্রাক্টর আর্গুমেন্ট হিসেবে

ক্লাস কনস্ট্রাক্টরে 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 ব্যবহার করলে মুভ হবে।

  1. C++-এ vector::resize() বনাম vector::reserve() পার্থক্য

  2. C++-এ টাইপ ইনফারেন্স (Type Inference)

  3. C++-এ পাস-বাই-পয়েন্টার বনাম পাস-বাই-রেফারেন্স

  4. C++-এ কপি কনস্ট্রাক্টর