Partager via


move_iterator Class

Le modèle de classe move_iterator est un wrapper pour un itérateur.Le move_iterator fournit le même comportement que l'itérateur il encapsule (les magasins), à moins qu'il convertit l'opérateur de déréférencement de l'itérateur stocké en référence rvalue, qui transforme une copie en mouvement.Pour plus d'informations sur des rvalues, consultez Déclarateur de référence Rvalue : &&.

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;
    };

Notes

La classe de modèle décrit un objet qui se comporte comme un itérateur à moins qu'une fois déréférencé.Elle enregistre un itérateurs d'accès aléatoire de type Iterator, accessible via la fonction membre base().Toutes les opérations sur move_iterator sont exécutées directement sur l'itérateur stocké, mais que le résultat d' operator* est casté implicitement à value_type&& pour effectuer une référence rvalue.

move_iterator peut être capable d'opérations qui ne sont pas définies par l'itérateur encapsulé.Ces opérations ne doivent pas être utilisées.

Ee428021.collapse_all(fr-fr,VS.110).gifConstructeurs

move_iterator

Le constructeur pour les objets de type move_iterator.

Ee428021.collapse_all(fr-fr,VS.110).gifTypedef

move_iterator::iterator_type

Un synonyme pour le paramètre RandomIteratorde modèle.

move_iterator::iterator_category

Un synonyme pour une plus longue expression d' typename du même nom, iterator_category identifie les fonctionnalités générales de l'itérateur.

move_iterator::value_type

Un synonyme pour une plus longue expression d' typename du même nom, value_type décrit le type des éléments des itérateurs sont.

move_iterator::difference_type

Un synonyme pour une plus longue expression d' typename du même nom, difference_type décrit le type intégral requis pour exprimer des valeurs de différence entre les éléments.

move_iterator::pointer

Un synonyme pour le paramètre RandomIteratorde modèle.

move_iterator::reference

Un synonyme de la référence value_type&&d' rvalue .

Ee428021.collapse_all(fr-fr,VS.110).gifFonctions membres

move_iterator::base

La fonction membre retourne l'itérateur stocké encapsulé par cet move_iterator.

Ee428021.collapse_all(fr-fr,VS.110).gifOpérateurs

move_iterator::operator*

Retourne (reference)*base().

move_iterator::operator++

Incrémente l'itérateur stocké.Le comportement exact dépend de si c'est un preincrement ou une opération de postincrement.

move_iterator::operator--

Décrémente l'itérateur stocké.Le comportement exact dépend de si c'est un predecrement ou une opération de postdecrement.

move_iterator::operator->

retourne &**this ;

move_iterator::operator-

Retourne move_iterator(*this) -=en soustrayant d'abord la valeur droite de la position actuelle.

move_iterator::operator[]

retourne (reference)*(*this + off) ;Vous permet de spécifier un offset de base actuelle pour obtenir la valeur à cet emplacement.

move_iterator::operator+

Retourne move_iterator(*this) +=la valeur.Permet d'ajouter un offset à la base pour obtenir la valeur à cet emplacement.

move_iterator::operator+=

Ajoute la valeur droite à l'itérateur stocké, et retourne *this.

move_iterator::operator-=

Soustrait la valeur droite de l'itérateur stocké, et retourne *this.

Configuration requise

en-tête : <iterator>

l'espace de noms : DST

Voir aussi

Tâches

Comment : Entrez un constructeur de mouvements

Référence

Lvalues et Rvalues

Modèles Standard