ptr_vector
là bản sao có thể xây dựng và sao chép được gán. Làm thế nào nó có thể sao chép sâu các đối tượng cơ bản khi nó không biết các loại cụ thể của chúng?Làm thế nào để tăng :: ptr_vector sâu sao chép các đối tượng cơ bản?
6
A
Trả lời
8
Vùng chứa boost::ptr_vector
có thông số mẫu tùy chọn, CloneAllocator
, xác định chính sách nhân bản. Trình phân bổ mặc định là heap_clone_allocator
, chỉ đơn giản gọi hàm tạo bản sao để sao chép một đối tượng.
Trình phân bổ bản sao được sử dụng như một cách để thêm một lớp hướng dẫn xung quanh nhân bản. Ví dụ, nó cho phép bạn cung cấp một cấp phát tùy chỉnh xử lý chính xác nhân bản của một loại không thể sao chép được.
Bạn có thể tìm thêm thông tin trong the Boost Pointer Containers Library documentation, giải thích các khái niệm Clonable và Clone Allocator.
Các vấn đề liên quan
- 1. Làm thế nào để sao chép các đối tượng liên kết sâu trong C#?
- 2. Javascript đối tượng sao chép sâu
- 3. Làm cách nào để sao chép một đối tượng (bản sao sâu) trong Dart?
- 4. Perl: Làm thế nào để sao chép sâu một đối tượng may mắn?
- 5. Làm thế nào để sao chép đối tượng trong Qt?
- 6. Bản sao sâu của đối tượng C#
- 7. Sao chép constructor: sâu sao chép một lớp trừu tượng
- 8. Làm thế nào để sao chép sâu một cây?
- 9. Viết bản sao sâu - sao chép giá trị con trỏ
- 10. Làm thế nào để sao chép đối tượng js?
- 11. bản sao sâu vs Sao chép Shallow
- 12. Làm cách nào để tạo bản sao sâu của đối tượng DB trong Django?
- 13. Sao chép sâu trong C#
- 14. Làm thế nào để sao chép sâu đối tượng đầy đủ đằng sau tăng :: shared_ptr <T> vào shared_ptr trỏ đến vị trí mới?
- 15. Làm thế nào để sao chép các giá trị đối tượng superclass thành các giá trị đối tượng lớp con?
- 16. BeanUtils.cloneBean() bản sao sâu
- 17. Làm thế nào để sao chép các đối tượng trong NHibernate?
- 18. Làm cách nào để sao chép/sao chép một thể hiện của đối tượng trong CoffeeScript?
- 19. Làm thế nào để tạo bản sao của đối tượng lớp mà không cần tham chiếu?
- 20. Làm cách nào để sao chép đối tượng JAXB
- 21. Làm thế nào để sao chép sâu QMap và các thùng chứa Qt khác
- 22. Sao chép sâu các nút xem cây
- 23. Sử dụng Entity Framework để sao chép các đối tượng cơ sở dữ liệu giữa
- 24. AS3 - Sao chép một đối tượng
- 25. Sao chép mảng sâu trong Fortran
- 26. Bản sao chép sâu() của ByteBuffer của Java
- 27. omu.valueinjecter bản sao sâu không giống như các loại
- 28. C++ sao chép đối tượng luồng
- 29. Bản sao sâu của mảng trong Ruby
- 30. Làm thế nào để đối tượng nhân bản sâu chứa một tài sản IList sử dụng AutoMapper
Ah - vì vậy tôi cần hỗ trợ khái niệm clonable ngay cả khi đối tượng của tôi có thể sao chép được? Các tài liệu dường như chỉ đề cập đến clonable khi đối tượng không phải là. –
@Billy: Đó là sự hiểu biết của tôi về nó. Tôi đã không sử dụng 'ptr_vector' rộng rãi, nhưng đó là cách các container con trỏ khác mà tôi đã sử dụng xử lý nhân bản. –
@Billy: Bạn cũng có thể sử dụng 'view_clone_allocator' thay vì' heap_clone_allocator' để nhận được yêu cầu xung quanh. Sau đó không cần quá tải cho 'new_clone()'. Rõ ràng là bạn không thể sao chép sâu các thùng chứa. –