I'm trying to learn a bit about data structures and writing containers which could be used by as much of "the C++" as possible. I know that to support ranged for a class needs to have begin()
and end()
or that std::back_inserter
uses push_back()
to do its job but that's about all.
Is there a list of this type of requirements a container must meet to be fully compatible with all the iterators, container adaptors and algorithms?