I have already implemented and tested the data structure and would now like to make it compatible with the collection of STL algorithms. Guidelines for implementing a custom iterator and the like. Specifically:
- What is the minimum set of operations that must be supported? (e.g.
++,+=,==,!=?) - Are there any properties of these operations that algorithms expect?
Ideally, these answers would be part of a bigger reference for implementing a STL-compatible data structure, but I’m not sure that such a document exists.
You should consult the SGI STL documentation. It has detailed requirements for each of the STL components, including containers and iterators.
Effectively, for iterators, there are various types–input iterators, output iterators, forward iterators, bidirectional iterators, and random-access iterators. The specification for each algorithm indicates the type of iterator required.