Condividi tramite


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.

Ee428021.collapse_all(it-it,VS.110).gifCostruttori

move_iterator

Il costruttore per oggetti di tipo move_iterator.

Ee428021.collapse_all(it-it,VS.110).gifDefinizioni typedef

move_iterator::iterator_type

Sinonimo del parametro di template RandomIterator.

move_iterator::iterator_category

Sinonimo di un'espressione più lunga typename lo stesso nome, iterator_category identifica le possibilità generali di iteratore.

move_iterator::value_type

Sinonimo di un'espressione più lunga typename lo stesso nome, value_type vengono descritti i tipi di elementi iteratori sono.

move_iterator::difference_type

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.

move_iterator::pointer

Sinonimo del parametro di template RandomIterator.

move_iterator::reference

Sinonimo del riferimento value_type&&di rvalue.

Ee428021.collapse_all(it-it,VS.110).gifFunzioni membro

move_iterator::base

La funzione membro restituisce l'iteratore archiviato eseguito il wrapping da questo move_iterator.

Ee428021.collapse_all(it-it,VS.110).gifOperatori

move_iterator::operator*

Restituisce (reference)*base().

move_iterator::operator++

Incrementa l'iteratore archiviato.Il comportamento esatto dipende dal fatto che è un preincrement o di postincrement.

move_iterator::operator--

Decrementa l'iteratore archiviato.Il comportamento esatto dipende dal fatto che è un predecrement o di postdecrement.

move_iterator::operator->

Restituisca il valore &**this.

move_iterator::operator-

Restituisce move_iterator(*this) -=innanzitutto sottraendo il valore destro dalla posizione corrente.

move_iterator::operator[]

Restituisca il valore (reference)*(*this + off).Consente di specificare un offset dalla base corrente per ottenere il valore in tale posizione.

move_iterator::operator+

Restituisce move_iterator(*this) +=il valore.Consente di aggiungere un offset dalla base per ottenere il valore in tale posizione.

move_iterator::operator+=

Aggiunge il valore dell'iteratore archiviato e restituisce *this.

move_iterator::operator-=

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

Riferimenti

Lvalue e di valori rvalue

Libreria di modelli standard