I have implemented some thing very similar. Implementing the iterators is the most challenging. I used boost::iterator_facade to implement the iterators. Using boost::iterator_facade
you can easy adapt any cached on disk data structures to have a STL container interface.
Related Contents:
- Why does the C++ STL not provide any “tree” containers?
- Why is std::map implemented as a red-black tree?
- Throwing the fattest people off of an overloaded airplane.
- How do I clear the std::queue efficiently?
- Why would anyone use set instead of unordered_set?
- Is it more efficient to copy a vector by reserving and copying, or by creating and swapping? [duplicate]
- Where can I get a “useful” C++ binary search algorithm?
- std::back_inserter for a std::set?
- How to choose between map and unordered_map?
- LRU cache design
- Does the range-based ‘for’ loop deprecate many simple algorithms?
- Easiest way of using min priority queue with key update in C++
- Looking for C++ STL-like vector class but using stack storage
- std::transform() and toupper(), no matching function
- How to get a random element from a C++ container?
- Why there is no std::copy_if algorithm?
- what is the difference between set and unordered_set in C++?
- What is the right approach when using STL container for median calculation?
- Use of for_each on map elements
- Is there a nice way to assign std::minmax(a, b) to std::tie(a, b)?
- How does a sentinel node offer benefits over NULL?
- Relative performance of std::vector vs. std::list vs. std::slist?
- How can I sort an STL map by value?
- What algorithms are used in C++11 std::sort in different STL implementations?
- Suffix Array Algorithm
- Why do I have to always specify the range in STL’s algorithm functions explicitly, even if I want to work on the whole container?
- Given a 1 TB data set on disk with around 1 KB per data record, how can I find duplicates using 512 MB RAM and infinite disk space?
- How do I iterate over a vector and also know the index of the element?
- Reorder vector using a vector of indices [duplicate]
- How to get the iterator for a successful binary_search? [duplicate]
- Efficiency of the STL priority_queue
- Which sorting algorithm is used by STL’s list::sort()?
- Does std::sort implement Quicksort? [duplicate]
- Initializing a static std::map in C++
- How to implement classic sorting algorithms in modern C++?
- Why use iterators instead of array indices?
- In STL maps, is it better to use map::insert than []?
- Why isn’t vector a STL container?
- std::string comparison (check whether string begins with another string)
- vector or map, which one to use?
- Google C++ style guide’s No-exceptions rule; STL?
- Convert a vector to initializer_list
- Difference between erase and remove
- Fast n choose k mod p for large n?
- size_t vs int warning
- C++ remove_if on a vector of objects
- How can I traverse/iterate an STL map?
- Does std::vector::swap invalidate iterators?
- Template class with template container
- Vectors, structs and std::find