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.
Construtores
O construtor para objetos do tipo move_iterator. |
Typedefs
Um sinónimo para o parâmetro RandomIteratordo modelo. |
|
Um sinónimo para uma expressão maior de typename de mesmo nome, iterator_category identifica as capacidades de iterador gerais. |
|
Um sinónimo para uma expressão maior de typename de mesmo nome, tipo value_type descreve quais elementos de iterador são. |
|
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. |
|
Um sinónimo para o parâmetro RandomIteratordo modelo. |
|
Um sinónimo para referência value_type&&de rvalue . |
Funções de membro
A função de membro retorna o iterador armazenado empacotado por esse move_iterator. |
Operadores
Retorna (reference)*base(). |
|
Incrementa o iterador armazenado.O comportamento exato depende se é um preincrement ou uma operação de postincrement. |
|
Diminui o iterador armazenado.O comportamento exato depende se é um predecrement ou uma operação de postdecrement. |
|
Retorna &**this. |
|
Retorna move_iterator(*this) -=primeiro subtraindo o valor à direita da posição atual. |
|
Retorna (reference)*(*this + off).Permite que você especifique um deslocamento base da atual para obter o valor em aquele local. |
|
Retorna move_iterator(*this) +=o valor.Permite que você adicione um deslocamento na base para obter o valor em aquele local. |
|
Adiciona o valor à direita a iterador armazenado, e retorna *this. |
|
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