Tôi muốn tìm một cách để lưu trữ một số std::vectors
, mỗi kích thước khác nhau nhưng được biết đến và hợp lý nhỏ, trong bộ nhớ liền kề. Tôi nhận ra rằng tôi có thể viết lớp của riêng mình, nói với một mảng rất lớn và với con trỏ đến đầu mỗi phần con của mảng trong mảng lớn hơn được xử lý như một thực thể riêng biệt, nhưng có vẻ như phải có cách thông minh hơn để làm điều này .Phân bổ bộ nhớ tiếp giáp cho một số std :: vectơ nhỏ?
Có cách nào để sử dụng allocators
, ví dụ: để tạo tiếp giáp std::vectors
? Tôi không muốn phát minh lại bánh xe chỉ vì tôi muốn địa phương bộ nhớ này khác bình thường std::vectors
Tôi không biết cách bắt đầu viết mã. Tôi cần phải tạo ra một cấp phát có một con trỏ vào bộ nhớ, phân bổ một vector ở đó, và sau đó bằng cách nào đó trả lại địa chỉ của phần cuối của vectơ đó, vì vậy bộ cấp phát tiếp theo của std::vector
có thể lấy nó và làm lại. Làm cách nào để một giá trị trả lại có thể là allocator
?
Có, bạn có thể sử dụng trình phân bổ để thực hiện việc này. Bạn đã thử cái gì? Hiển thị công việc của bạn :) – Andrew
@Andrew Tôi đã thêm một cái gì đó trong câu hỏi của tôi, nhưng tôi không biết bắt đầu từ đâu. Tôi đã không làm việc với phân bổ, và cho đến nay tất cả tôi đã làm là đọc phần của Josuttis trong tài liệu tham khảo STL của mình. – sunny
Bất kỳ cơ hội nào, có kích thước được biết đến lúc biên dịch không? – dasblinkenlight