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.
Constructeurs
Le constructeur pour les objets de type move_iterator. |
Typedef
Un synonyme pour le paramètre RandomIteratorde modèle. |
|
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. |
|
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. |
|
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. |
|
Un synonyme pour le paramètre RandomIteratorde modèle. |
|
Un synonyme de la référence value_type&&d' rvalue . |
Fonctions membres
La fonction membre retourne l'itérateur stocké encapsulé par cet move_iterator. |
Opérateurs
Retourne (reference)*base(). |
|
Incrémente l'itérateur stocké.Le comportement exact dépend de si c'est un preincrement ou une opération de postincrement. |
|
Décrémente l'itérateur stocké.Le comportement exact dépend de si c'est un predecrement ou une opération de postdecrement. |
|
retourne &**this ; |
|
Retourne move_iterator(*this) -=en soustrayant d'abord la valeur droite de la position actuelle. |
|
retourne (reference)*(*this + off) ;Vous permet de spécifier un offset de base actuelle pour obtenir la valeur à cet emplacement. |
|
Retourne move_iterator(*this) +=la valeur.Permet d'ajouter un offset à la base pour obtenir la valeur à cet emplacement. |
|
Ajoute la valeur droite à l'itérateur stocké, et retourne *this. |
|
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