move_iterator Class
Il modello move_iterator della classe è un wrapper di un iteratore.Il move_iterator fornisce lo stesso comportamento dell'iteratore esegue il wrapping (file), a meno che cambia l'operatore di dereferenziazione dell'iteratore archiviato in un riferimento rvalue, trasformando una copia di un movimento.Per ulteriori informazioni sui di valori rvalue, vedere Dichiarazione di riferimento 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;
};
Note
La classe modello descrive un oggetto che funziona come un iteratore a meno che una volta derefenziato.Archivia un iteratore di accesso casuale di tipo Iterator, accede mediante la funzione membro base().Tutte le operazioni su move_iterator vengono eseguite direttamente sull'iteratore archiviato, ad eccezione del fatto che il risultato operator* in modo implicito viene eseguito il cast in value_type&& per creare un riferimento rvalue.
move_iterator potrebbe essere in grado di operazioni che non sono definite dall'iteratore di cui è stato eseguito il wrapping.Queste operazioni non devono essere utilizzate.
Costruttori
Il costruttore per oggetti di tipo move_iterator. |
Definizioni typedef
Sinonimo del parametro di template RandomIterator. |
|
Sinonimo di un'espressione più lunga typename lo stesso nome, iterator_category identifica le possibilità generali di iteratore. |
|
Sinonimo di un'espressione più lunga typename lo stesso nome, value_type vengono descritti i tipi di elementi iteratori sono. |
|
Sinonimo di un'espressione più lunga typename lo stesso nome, difference_type viene descritto il tipo integrale necessario per esprimere i valori di differenza tra gli elementi. |
|
Sinonimo del parametro di template RandomIterator. |
|
Sinonimo del riferimento value_type&&di rvalue. |
Funzioni membro
La funzione membro restituisce l'iteratore archiviato eseguito il wrapping da questo move_iterator. |
Operatori
Restituisce (reference)*base(). |
|
Incrementa l'iteratore archiviato.Il comportamento esatto dipende dal fatto che è un preincrement o di postincrement. |
|
Decrementa l'iteratore archiviato.Il comportamento esatto dipende dal fatto che è un predecrement o di postdecrement. |
|
Restituisca il valore &**this. |
|
Restituisce move_iterator(*this) -=innanzitutto sottraendo il valore destro dalla posizione corrente. |
|
Restituisca il valore (reference)*(*this + off).Consente di specificare un offset dalla base corrente per ottenere il valore in tale posizione. |
|
Restituisce move_iterator(*this) +=il valore.Consente di aggiungere un offset dalla base per ottenere il valore in tale posizione. |
|
Aggiunge il valore dell'iteratore archiviato e restituisce *this. |
|
Sottrae il valore destro dell'iteratore archiviato e restituisce *this. |
Requisiti
intestazione: <iterator>
Spazio dei nomi: deviazione standard
Vedere anche
Attività
Procedura: Scrivere un costruttore di spostamento