Tôi có nhiều mã nơi tôi xóa các vùng chứa vector có con trỏ trong đó, nghĩa là tôi phải xóa tất cả các con trỏ trước và sau đó xóa vùng chứa. Mỗi lần tôi lặp lại và xóa các con trỏ theo cách thủ công (tôi biết về stl :: algorithm for_each). Để phá vỡ tất cả mã đó, tôi đã tạo một mẫu để xóa tất cả các vùng chứa vector có con trỏ. Càng xa càng tốt.Xóa bất kỳ vùng chứa nào bằng cách sử dụng các mẫu
Bây giờ, tôi có thêm một số loại vùng chứa bao gồm bản đồ, container đồng thời, v.v. với cùng chức năng cuối cùng khi việc xóa đi. Hàm DeleteContainer(std::vector<T*>& VecIn)
mà tôi chỉ có thể làm việc trên các vectơ như đã đề cập ở trên. Có cách nào để làm cho nó đủ chung chung để làm việc trên tất cả các container?
EDIT: Cảm ơn tất cả câu trả lời, tôi ước tôi có thể chọn nhiều câu trả lời. Đối với bất kỳ ai tình cờ gặp câu hỏi này, hãy đọc tất cả câu trả lời và không chỉ câu trả lời được chọn vì tất cả họ đều cung cấp thông tin tuyệt vời.
Đây không phải là rất C++ ish. Vùng chứa không phải là ngoại lệ an toàn vì bạn đang gọi trình gỡ rối theo cách thủ công. Bạn cần bọc container trong đối tượng ab để RAII thực sự gọi hàm này tự động khi vùng chứa nằm ngoài phạm vi. –
Nhận xét giống như câu trả lời khác, bạn phải xử lý các vùng chứa liên kết khác nhau. – Nim