Freigeben über


move_iterator Class

Klassenvorlage move_iterator ist ein Wrapper für einen Iterator.Das move_iterator stellt dasselbe Verhalten, das der Iterator es (Speicher) umschließt, außer es des gespeicherten Iterators dereferenziert Operator in einen rvalu-Verweis gedreht und eine Kopie zu eine Verschiebung macht.Weitere Informationen zu Rvalue, finden Sie unter Rvalu-Verweis-Deklarator: &&.

template<class Iterator>
    class move_iterator {
public:
    typedef Iterator iterator_type;
    typedef typename    
        iterator_traits<Iterator>::iterator_category
            iterator_category;
    typedef typename iterator_traits<Iterator>::value_type
        value_type;
    typedef typename iterator_traits<Iterator>::difference_type
        difference_type;
    typedef Iterator
        pointer;
    typedef value_type&&
        reference;

    move_iterator();
    explicit move_iterator (Iterator right);
    template<class Type>
        move_iterator (const move_iterator<Type>& right);
    template <class Type> 
        move_iterator& operator=(const move_iterator<Type>& right);

    iterator_type base () const;
    reference operator* () const;
    pointer operator-> () const;

    move_iterator& operator++ ();
    move_iterator operator++ (int);
    move_iterator& operator-- ();
    move_iterator operator-- (int);

    move_iterator& operator+= (difference_type off);
    move_iterator operator+ (difference_type off) const;
    move_iterator& operator-= (difference_type off);
    move_iterator operator- (difference_type off) const;
    reference operator[] (difference_type off) const;
    };

Hinweise

Die Vorlagenklasse beschreibt ein Objekt, das wie ein Iterator außer verhält, wenn es dereferenziert wird.Sie speichert einen Iterator mit wahlfreier Zugriff des Typs Iterator zugegriffen, über die Memberfunktion base().Alle Vorgänge auf move_iterator werden direkt auf dem gespeicherten Iterator ausgeführt, außer dass das Ergebnis operator* wird implizit auf value_type&& umgewandelt, um einen rvalu-Verweis auszuführen.

move_iterator kann für den Vorgängen enthalten, die nicht von den umschlossenen Iterator definiert werden.Diese Operationen sollten nicht verwendet werden.

Ee428021.collapse_all(de-de,VS.110).gifKonstruktoren

move_iterator

Der Konstruktor für Objekte des Typs move_iterator.

Ee428021.collapse_all(de-de,VS.110).gifTypedefs

move_iterator::iterator_type

Ein Synonym für den Vorlagenparameter RandomIterator.

move_iterator::iterator_category

Ein Synonym für einen längeren typename Ausdruck des gleichen Namens, iterator_category identifiziert die allgemeinen Fähigkeiten des Iterators.

move_iterator::value_type

Ein Synonym für einen längeren typename Ausdruck des gleichen Namens, value_type beschreibt, welcher Typ die Iteratorelemente sind.

move_iterator::difference_type

Ein Synonym für einen längeren typename Ausdruck des gleichen Namens, difference_type beschreibt den ganzzahligen Typ, der erforderlich ist, um Unterschiedwerte zwischen Elementen auszudrücken.

move_iterator::pointer

Ein Synonym für Vorlagenparameter RandomIterator.

move_iterator::reference

Ein Synonym als rvalue Verweis value_type&&.

Ee428021.collapse_all(de-de,VS.110).gifMemberfunktionen

move_iterator::base

Die Memberfunktion gibt den gespeicherten Iterator zurück, der durch dieses move_iterator umschlossen wird.

Ee428021.collapse_all(de-de,VS.110).gifOperatoren

move_iterator::operator*

Gibt (reference)*base(). zurück

move_iterator::operator++

Inkrementiert gespeicherten Iterator.Genaues Verhalten hängt davon ab, ob es ein sowohl Präinkrement- oder ein Postinkrementvorgang ist.

move_iterator::operator--

Dekrementiert gespeicherten Iterator.Genaues Verhalten hängt davon ab, ob es ein Prädekrement oder ein Postdekrementvorgang ist.

move_iterator::operator->

Gibt &**this zurück.

move_iterator::operator-

Gibt move_iterator(*this) -= zurück, indem den rechten Wert von der aktuellen Position zuerst entfernen.

move_iterator::operator[]

Gibt (reference)*(*this + off) zurück.Ermöglicht es Ihnen, einen Offset von der aktuellen Basis anzugeben, den Wert an diesem Speicherort abzurufen.

move_iterator::operator+

Gibt move_iterator(*this) += der Wert zurück.Ermöglicht es Ihnen, einen Offset zur Basis hinzuzufügen, den Wert an diesem Speicherort abzurufen.

move_iterator::operator+=

Fügt den rechten Wert dem gespeicherten Iterator hinzu und gibt *this zurück.

move_iterator::operator-=

Subtrahiert den rechten Wert vom gespeicherten Iterator und gibt *this zurück.

Anforderungen

Header: <iterator>

Namespace: std

Siehe auch

Aufgaben

Gewusst wie: Schreiben Sie einen Verschiebungskonstruktor

Referenz

Lvalues und Rvalue

Standardvorlagenbibliothek