Share via


iterator-Struktur

Eine niedrige leere Struktur verwendet, um sicherzustellen, dass eine benutzerdefinierte Iteratorklasse ordnungsgemäß mit iterator_trait. S funktioniert.

template<class Category, class Type, class Distance = ptrdiff_t
    class Pointer = Type*, class Reference = Type&>
    struct iterator {
        typedef Category iterator_category;
        typedef Type value_type;
        typedef Distance difference_type;
        typedef Distance distance_type;
        typedef Pointer pointer;
        typedef Reference reference;
    };

Hinweise

Die Vorlagenstruktur dient als Basistyp für alle Iteratoren. Sie definiert die auszublendende Membertypen

  • iterator_category (ein Synonym für den Vorlagenparameter Category).

  • value_type (ein Synonym für den Vorlagenparameter Typ).

  • difference_type (ein Synonym für den Vorlagenparameter Distance).

  • distance_type (ein Synonym für den Vorlagenparameter Distance)

  • pointer (ein Synonym für den Vorlagenparameter Pointer).

  • reference (ein Synonym für den Vorlagenparameter Reference).

Beachten Sie, dass value_type keine Konstantentyp sein sollte, wenn pointer Punkte dargestellt ein Objekt von const Typ und von Verweis ein Objekt aus const Typ.

Beispiel

Unter iterator_traits finden Sie ein Beispiel, wie Sie die Typen in der Iteratorbasisklasse deklariert und verwendet.

Anforderungen

Header: <Iterator>

Namespace: std

Siehe auch

Referenz

<iterator>

Threadsicherheit in der C++-Standardbibliothek

Standardvorlagenbibliothek