Partilhar via


move_iterator Class

O modelo move_iterator da classe é um wrapper para um iterador.O move_iterator fornece o mesmo comportamento que o iterador que envolve (armazenamentos), a não ser que active o iterador armazenado desreferencie o operador em uma referência de rvalue, transformando uma cópia em um movimento.Para obter mais informações sobre rvalues, consulte Declarador de referência 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;
    };

Comentários

A classe de modelo descreve um objeto que se comporta como uma iterador a não ser que quando desreferenciado.Armazena um iterador de acesso aleatório de tipo Iterator, acessado pela função de membro base().Todas as operações de move_iterator são executados diretamente no iterador armazenado, exceto que o resultado de operator* é convertido implicitamente a value_type&& para fazer uma referência de rvalue.

move_iterator pode ser capaz das operações que não são definidas por iterador definido.Essas operações não devem ser usados.

Ee428021.collapse_all(pt-br,VS.110).gifConstrutores

move_iterator

O construtor para objetos do tipo move_iterator.

Ee428021.collapse_all(pt-br,VS.110).gifTypedefs

move_iterator::iterator_type

Um sinónimo para o parâmetro RandomIteratordo modelo.

move_iterator::iterator_category

Um sinónimo para uma expressão maior de typename de mesmo nome, iterator_category identifica as capacidades de iterador gerais.

move_iterator::value_type

Um sinónimo para uma expressão maior de typename de mesmo nome, tipo value_type descreve quais elementos de iterador são.

move_iterator::difference_type

Um sinónimo para uma expressão maior de typename de mesmo nome, difference_type descreve o tipo integral necessário para expressar valores da diferença entre elementos.

move_iterator::pointer

Um sinónimo para o parâmetro RandomIteratordo modelo.

move_iterator::reference

Um sinónimo para referência value_type&&de rvalue .

Ee428021.collapse_all(pt-br,VS.110).gifFunções de membro

move_iterator::base

A função de membro retorna o iterador armazenado empacotado por esse move_iterator.

Ee428021.collapse_all(pt-br,VS.110).gifOperadores

move_iterator::operator*

Retorna (reference)*base().

move_iterator::operator++

Incrementa o iterador armazenado.O comportamento exato depende se é um preincrement ou uma operação de postincrement.

move_iterator::operator--

Diminui o iterador armazenado.O comportamento exato depende se é um predecrement ou uma operação de postdecrement.

move_iterator::operator->

Retorna &**this.

move_iterator::operator-

Retorna move_iterator(*this) -=primeiro subtraindo o valor à direita da posição atual.

move_iterator::operator[]

Retorna (reference)*(*this + off).Permite que você especifique um deslocamento base da atual para obter o valor em aquele local.

move_iterator::operator+

Retorna move_iterator(*this) +=o valor.Permite que você adicione um deslocamento na base para obter o valor em aquele local.

move_iterator::operator+=

Adiciona o valor à direita a iterador armazenado, e retorna *this.

move_iterator::operator-=

Subtrai o valor à direita do iterador armazenado, e retorna *this.

Requisitos

Cabeçalho: <iterator>

namespace: STD

Consulte também

Tarefas

Como: gravar um construtor de movimentação

Referência

Lvalues e Rvalues

Standard Template Library