2010-06-20 2 views
3

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

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

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

ответ

5

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

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

+0

Благодарим за быстрый ответ. Это было именно то, что я ищу! –

+1

Действительно, категоризацию на сайте SGI STL действительно стоит упомянуть. Другим вариантом является (при создании замены замены) просто предоставить тот же интерфейс, что и заменяемый контейнер. –

Смежные вопросы