Реализация пользовательских STL-подобных структур данных - PullRequest
4 голосов
/ 20 июня 2010

Я уже реализовал и протестировал структуру данных и теперь хотел бы сделать ее совместимой с набором алгоритмов STL. Рекомендации по реализации пользовательского итератора и тому подобное. В частности:

  • Какой минимальный набор операций должен поддерживаться? (например, ++, +=, ==, !=?)
  • Существуют ли какие-либо свойства этих операций, которые ожидают алгоритмы?

В идеале, эти ответы были бы частью большей справочной информации для реализации STL-совместимой структуры данных, но я не уверен, что такой документ существует.

1 Ответ

5 голосов
/ 20 июня 2010

Вам следует обратиться к документации SGI STL . Он содержит подробные требования для каждого из компонентов STL, включая контейнеры и итераторы .

По сути, для итераторов существуют различные типы - входные итераторы, выходные итераторы, прямые итераторы, двунаправленные итераторы и итераторы с произвольным доступом. Спецификация для каждого алгоритма указывает требуемый тип итератора.

...