move_iterator (Clase)

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

La plantilla de clase move_iterator es un contenedor para un iterador. La plantilla move_iterator ofrece el mismo comportamiento que el iterador que contiene (almacena), con la excepción de que cambia el operador de desreferencia por una referencia rvalue y convierte una copia en un movimiento. Para obtener más información sobre los valores r, consulte declarador de referencia Rvalue: &&.

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;
   };  

La clase de plantilla describe un objeto que se comporta como un iterador salvo cuando se desreferencia. Almacena un iterador de acceso aleatorio de tipo Iterator, que se accede mediante la función miembro base``(). Todas las operaciones de move_iterator se realizan directamente en el iterador almacenado, con la excepción de que el resultado de operator* se convierte implícitamente en value_type&& para crear una referencia rvalue.

Un move_iterator puede llevar a cabo operaciones no definidas por el iterador contenedor. Estas operaciones no se deben usar.

Constructores

move_iteratorConstructor para los objetos de tipo move_iterator.

Definiciones de tipo

move_iterator:: iterator_typeSinónimo del parámetro de plantilla RandomIterator.
move_iterator:: iterator_categoryUn sinónimo de una expresión más larga de typename del mismo nombre, iterator_category identifica las capacidades generales del iterador.
move_iterator:: value_typeUn sinónimo de una expresión más larga de typename del mismo nombre, value_type describe de qué tipo son los elementos del iterador.
move_iterator:: difference_typeUn sinónimo de una expresión más larga de typename del mismo nombre, difference_type describe el tipo entero necesario para expresar valores diferentes entre elementos.
move_iterator:: pointerSinónimo del parámetro de plantilla RandomIterator.
move_iterator:: ReferenceSinónimo de la referencia rvalue value_type&&.

Funciones miembro

move_iterator:: baseLa función miembro devuelve el iterador almacenado contenido en este move_iterator.

Operadores

move_iterator:: operator *Devuelve (reference)*``base``().
move_iterator:: operator ++Incrementa el iterador almacenado. El comportamiento exacto depende de si se trata de una operación de incremento previo o posterior.
move_iterator:: operator--Disminuye el iterador almacenado. El comportamiento exacto depende de si se trata de una operación de disminución previa o posterior.
move_iterator:: operator->Devuelve &**this.
move_iterator:: operator-Devuelve move_iterator(*this) -= restando primero el valor derecha de la posición actual.
[] move_iterator:: operatorDevuelve (reference)*(*this + off). Permite especificar una posición de desplazamiento a partir de la base actual para obtener el valor que se encuentra en esa ubicación.
move_iterator:: operator +Devuelve move_iterator(*this) += el valor. Permite agregar una posición de desplazamiento a la base para obtener el valor que se encuentra en esa ubicación.
move_iterator:: operator +=Agrega el valor situado a la derecha del iterador almacenado y devuelve *this.
move_iterator:: operator =Resta el valor situado a la derecha del iterador almacenado y devuelve *this.

Encabezado:<>>

Espacio de nombres: std

Devuelve el iterador almacenado para este move_iterator.

RandomIterator base() const;

Comentarios

La función miembro devuelve el iterador almacenado.

El tipo difference_type es una move_iterator``typedef basada en el rasgo de iterador difference_typey se pueden usar indistintamente con él.

typedef typename iterator_traits<RandomIterator>::difference_type
    difference_type;

Comentarios

Tipo sinónimo del rasgo iterador typename iterator_traits<RandomIterator>::pointer.

El tipo iterator_category es una move_iterator``typedef basada en el rasgo de iterador iterator_categoryy se pueden usar indistintamente con él.

typedef typename iterator_traits<RandomIterator>::iterator_category
    iterator_category;

Comentarios

Tipo sinónimo del rasgo iterador typename iterator_traits<RandomIterator>::iterator_category.

El tipo iterator_type se basa en el parámetro de plantilla RandomIterator para la plantilla de clase move_iterator y se puede usar indistintamente en su lugar.

typedef RandomIterator iterator_type;

Comentarios

El tipo es un sinónimo del parámetro de plantilla RandomIterator.

Construye un iterador de movimiento. Usa el parámetro como iterador almacenado.

move_iterator();

explicit move_iterator(RandomIterator right);

template <class Type>
move_iterator(const move_iterator<Type>& right);

Parámetros

right
Iterador que se va a usar como iterador almacenado.

Comentarios

El primer constructor inicializa el iterador almacenado con su constructor predeterminado. Los demás constructores inicializan el iterador almacenado con base.base().

Agrega un desplazamiento al iterador almacenado, de modo que el iterador almacenado apunta al elemento en la nueva ubicación actual. Luego, el operador mueve el nuevo elemento actual.

move_iterator& operator+=(difference_type _Off);

Parámetros

_Off
Un desplazamiento para agregar a la posición actual con el fin de determinar la nueva posición actual.

Valor devuelto

Devuelve el nuevo elemento actual.

Comentarios

El operador agrega _Off al iterador almacenado. Después devuelve *this.

Se desplaza por un número especificado de elementos anteriores. Este operador resta un desplazamiento al iterador almacenado.

move_iterator& operator-=(difference_type _Off);

Parámetros

Comentarios

El operador realiza la evaluación *this += -_Off. Después devuelve *this.

Incrementa el iterador almacenado que pertenece a este move_iterator.. El operador de postincremento accede al elemento actual. El operador de preincremento accede al siguiente elemento.

move_iterator& operator++();

move_iterator operator++(int);

Parámetros

Comentarios

El primer operador (preincremento) incrementa el iterador almacenado. Después devuelve *this.

El segundo operador (postincremento) hace una copia de *this y realiza la evaluación ++*this. Después devuelve la copia.

Devuelve la posición del iterador avanzada un número de elementos.

move_iterator operator+(difference_type _Off) const;

Parámetros

Comentarios

El operador devuelve move_iterator(*this) += _Off.

Permite el acceso del índice de matriz a elementos en el rango de move iterator.

reference operator[](difference_type _Off) const;

Parámetros

Comentarios

El operador devuelve (reference)*(*this + _Off).

Los operadores de miembro de predecremento y postdecremento realizan una reducción en el iterador almacenado.

move_iterator& operator--();

move_iterator operator--();

Parámetros

Comentarios

El primer operador de miembro (predecremento) disminuye el iterador almacenado. Después devuelve *this.

El segundo operador (postdecremento) hace una copia de *this y evalúa --*this. Después devuelve la copia.

Disminuye el iterador almacenado y devuelve el valor indicado.

move_iterator operator-(difference_type _Off) const;

Parámetros

Comentarios

El operador devuelve move_iterator(*this) -= _Off.

Desreferencia el iterador almacenado y devuelve el valor. Se comporta como un rvalue reference y efectúa una asignación de movimiento. El operador transfiere el elemento actual fuera del iterador base. El elemento que sigue se convierte en el nuevo elemento actual.

reference operator*() const;

Comentarios

El operador devuelve (reference)*``base``().

Normal, como RandomIterator``operator->, proporciona acceso a los campos que pertenecen al elemento actual.

pointer operator->() const;

Comentarios

El operador devuelve &**this.

El tipo pointer es un typedef que se basa en el iterador aleatorio RandomIterator para move_iterator, y se puede usar indistintamente.

typedef RandomIterator
    pointer;

Comentarios

El tipo es un sinónimo de RandomIterator.

El tipo reference es un typedef que se basa en value_type&& para move_iterator, y se pueden usar indistintamente con value_type&&.

typedef value_type&&
    reference;

Comentarios

El tipo es un sinónimo de value_type&&, que es una referencia rvalue.

El tipo value_type es una move_iterator``typedef basada en el rasgo de iterador value_typey se pueden usar indistintamente con él.

typedef typename iterator_traits<RandomIterator>::value_type
    value_type;

Comentarios

Tipo sinónimo del rasgo iterador typename iterator_traits<RandomIterator>::value_type.

<>>
Valores l y valores
Constructores de movimiento y operadores de asignación de movimiento (C++)
Biblioteca de plantillas estándar

Mostrar: