Có một thùng chứa std trong C++ hoạt động như lai giữa vector và danh sách liên kết hay không. Ý nghĩa của tôi là cấu trúc dữ liệu vượt qua sự phân bổ lại thường xuyên của std :: vector và phân bổ bộ nhớ thừa tiềm năng, thay vào đó khi cấu trúc hết dung lượng, nó thêm con trỏ vào đoạn được phân bổ tiếp theo và chỉ khi số mảnh một giá trị nhất định, toàn bộ cấu trúc được tách rời thành một đoạn mới liên tục và số đoạn được đặt trở lại 0.C++ vectơ/danh sách liên kết lai
Trả lời
std::deque
là vùng chứa tiêu chuẩn gần nhất với những gì bạn mô tả. Nó không phải là chính xác là như thế này, tuy nhiên (ví dụ, nó khá nhiều phải là một mảng của mảng chứ không phải là một danh sách các mảng vì sau này sẽ không cho phép truy cập phần tử thời gian không đổi).
Tùy thuộc vào yêu cầu thực tế của bạn, nó có thể đủ gần.
Vì vậy, tôi về cơ bản có thể sử dụng một deque và chỉ cần thêm một vài dòng mã tôi cần để chống phân mảnh nó một khi một mức độ nhất định của các mảnh được đạt tới. Ý tưởng là tự nhiên để loại bỏ bộ nhớ hops và bộ nhớ cache bỏ lỡ ... – dtech
Như đã nói, std::deque
đến gần với yêu cầu của bạn. Tôi chỉ muốn thêm so sánh này giữa std::vector
và std::deque
mà tôi thấy rất hữu ích. An In-Depth Study of the STL Deque Container
- 1. Tương lai của liên kết C++: truyền theo giá trị?
- 2. C++ Hành vi danh sách liên kết
- 3. Danh sách liên kết đôi trong C++
- 4. Danh sách liên kết danh sách liên kết trong Java
- 5. Tạo danh sách được liên kết vòng tròn trong C#?
- 6. C Xóa nút khỏi danh sách được liên kết
- 7. Mã C cho danh sách liên kết XOR
- 8. scala, vui chơi, tương lai: kết quả kết hợp từ nhiều tương lai
- 9. Danh sách liên kết chứa các danh sách được liên kết khác & miễn phí
- 10. Liên kết hai Danh sách Sưu tậpCollection
- 11. Cách liên kết danh sách với dataGridView?
- 12. Danh sách các lệnh liên kết zsh
- 13. Danh sách liên kết bốn là gì?
- 14. Danh sách liên kết tới DataSource
- 15. Rails ActiveRecord Model Danh sách liên kết
- 16. Danh sách liên kết phải CSS
- 17. đảo ngược danh sách liên kết
- 18. Danh sách liên kết tới DataGrid
- 19. Xóa danh sách liên kết kép
- 20. Danh sách liên kết đa luồng được nối kết
- 21. Liên kết tĩnh trong C#
- 22. Mẫu C++, liên kết lỗi
- 23. liên kết tĩnh của C++
- 24. g ++ liên kết phụ thuộc thứ tự khi liên kết mã c tới mã C++
- 25. Liên kết của LinkHashMap - Sử dụng Danh sách Liên kết Đôi, không phải là một Danh sách Liên kết Đơn; Tại sao
- 26. danh sách liên kết ngược lại không có temp
- 27. Không thể tạo Danh sách Liên kết được Nhân đôi Liên kết
- 28. tương lai của mục tiêu c?
- 29. Số async/tương lai trong C++ 11
- 30. Cách lặp lại "Liên kết có Liên quan" bằng C#
Bạn đã xem 'std :: deque' chưa? Nó có phù hợp với yêu cầu của bạn không? – Asha
Tôi nghĩ rằng 'std :: deque' hoạt động theo cách đó, nhưng tôi không chắc chắn. – Constantinius
@Constantinius Tôi luôn nghĩ rằng 'std :: deque' chỉ là một loại ringbuffer và do đó tương tự như một' std :: vector' trong hành vi phân bổ bộ nhớ của nó. –