Hỏi về hàm copy constructor của lớp vector trong thư viện stl c++

mình có kiểu vector như sau:

vector <object*> A;

giờ đây mình muốn tạo một vector mớivector<object*> B và muốn copy hết dữ liệu từ A sang B.
Điều kiện là : làm sao cho khi mình thay đổi dữ liệu trong A thì dữ liệu trong B không đổi. (no referece)
Mình đã dùng cái copy constructor của nó là vector<object*>B(A) nhưng lại khong đáp ứng được điều kiện trên.
Mọi người giúp mình nha.
Thank

vector<object> A

tại sao phải là vector chứa con trỏ? Bạn đang sử dụng đa hình?

1 Like

Chào bạn, ý bạn làmuốn copy 1 vector các class?
Bạn thử dùng cách viết lại hàm clone của class:

A* copy = it->Clone();

class A {
    virtual A* Clone()
    {
        return new A(*this);
    }
};

Sau đó duyệt và push_back từng phần tử vào vector mới.
Chúc bạn thành công.

1 Like

mình dùng đa hình bạn

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?