Well, I donβt think the structure is present from the box in boost (maybe elsewhere), so you have to create it. I would not recommend using operator[]() , although at least as implemented in std::map , because it can make it difficult to keep track of elements added to the map (for exapmle, using operator[]() with a value of adds that the value is empty to the map) and move on to more explicit get and put operations to add and extract map elements.
As for the simplest implementation, I would use to use the actual map as storage and deque to store the added elements (not tested):
template <typename K, typename V> struct BoundedSpaceMap { typedef std::map<K,V> map_t; typedef std::deque<K> deque_t;
source share