views:

52

answers:

1

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.

+4  A: 

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.

James McNellis
Thank you for the quick response. This was *exactly* what I am looking for!
Mike Koval
Indeed, the categorization on the SGI STL site is really worth referring to. Another option being (when creating a drop-in replacement) to simply provide the same interface as the container being replaced.
Matthieu M.