
I was thinking of using a multi-indexed container as part of an implementation of another container. The final container will have an interface like a set, but internally the elements sometimes have to be accessible via random-access iteration[1]. Implementing with a straight set would limit me to bidirectional iteration, which will slow down internal operations that need random access. The internal multi-index container would have set and vector aspects, i.e. ordered-unique and random-access index specifiers. Even though the external interface will be like a set, should I have publicize the vector-like operations "capacity" and "reserve"? Will reserving capacity help in the ordered-unique part of any insertions? Alternatively, is there a better way to implement a set w/ random-access iteration besides this multi-index idea? [1] I think that the external iterators should stay bidirectional. That way I can transfer the ordered-unique view's iterators and give a consistent traversal order. If I use the random-access view's iterators, I could traverse better but there'll be no obvious rule to the arrangement of elements from the user's perspective. -- Daryle Walker Mac, Internet, and Video Game Junkie darylew AT hotmail DOT com