Tôi thích phát triển các thuật toán bằng cách sử dụng STL, tuy nhiên, tôi có vấn đề này lặp đi lặp lại nơi tập dữ liệu của tôi quá lớn cho vùng heap.Các lớp chứa STL được hỗ trợ đĩa?
Tôi đã tìm kiếm các thay thế thả xuống cho các vùng chứa STL và các thuật toán được sao lưu đĩa, tức là các cấu trúc dữ liệu được lưu trữ trên đĩa chứ không phải là vùng heap.
Một người bạn gần đây đã chỉ cho tôi về phía stxxl. Trước khi tôi quá tham gia với nó ... Có bất kỳ thay thế STL đĩa sao lưu khác có sẵn mà tôi nên xem xét không?
LƯU Ý: Tôi không quan tâm đến sự kiên trì hoặc cơ sở dữ liệu được nhúng. Xin vui lòng không đề cập đến tăng :: serialization, POST ++, Thư viện mẫu quan hệ, Berkeley DB, sqlite, vv Tôi nhận thức được những dự án này và sử dụng chúng khi chúng thích hợp cho mục đích của tôi.
UPDATE: Một số người đã đề cập đến tập tin bộ nhớ lập bản đồ và sử dụng một cấp phát tùy chỉnh, gợi ý tốt BTW, nhưng tôi sẽ chỉ cho họ để thảo luận here nơi David Abraham gợi ý rằng lặp tùy chỉnh sẽ là cần thiết cho container đĩa hậu thuẫn . Có nghĩa là phương pháp phân bổ tùy chỉnh không có khả năng hoạt động.
Nếu bộ dữ liệu của bạn quá lớn, bạn nên cân nhắc xem cấu trúc hệ thống của mình có chính xác hay không (ví dụ: có chuyển sang hệ thống 64 bit hay không; các câu hỏi này phổ biến hơn khi được hỏi). Bạn cũng nên xem xét liệu STL có phải là cách tiếp cận đúng hay không; nó có thể làm cho các giả định về kích thước tập dữ liệu mà không giữ cho bạn. –
@Donal Anh ấy có thể không đặt đúng số lượng bộ nhớ. –