<iterator>

 

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

Define las primitivas de iterador, iteradores predefinidos e iteradores de secuencia, así como varias plantillas auxiliares. Entre los iteradores predefinidos se incluyen adaptadores de inserción y de inversión. Hay tres clases de adaptadores de iterador de inserción: frontal, posterior y general. Proporcionan la semántica de inserción en lugar de la semántica de sobrescritura que los iteradores de funciones miembro contenedoras proporcionan.

#include <iterator>  
  

Los iteradores son una generalización de los punteros; realizan una abstracción de sus requisitos de forma que un programa de C++ puede trabajar con estructuras de datos diferentes de manera uniforme. Los iteradores actúan como intermediarios entre los contenedores y los algoritmos genéricos. En lugar de trabajar sobre tipos de datos específicos, los algoritmos se definen para que funcionen sobre un intervalo especificado por un tipo de iterador. Entonces, el algoritmo puede trabajar con cualquier estructura de datos que satisfaga los requisitos del iterador. Hay cinco tipos o categorías de iterador, cada uno de los cuales dispone de su propio conjunto de requisitos y de funcionalidad resultante:

  • Salida: desplazamiento hacia delante, puede almacenar pero no recuperar valores, proporcionado por el ostream y el insertador.

  • Entrada: desplazamiento hacia delante, puede recuperar pero no almacenar valores, proporcionado por el istream.

  • Adelante: desplazamiento hacia delante, puede almacenar y recuperar valores.

  • Bidireccional: desplazamiento hacia delante y hacia atrás, puede almacenar y recuperar valores, proporcionado por list, set, multiset, map y multimap.

  • Acceso aleatorio: acceso a los elementos en cualquier orden, puede almacenar y recuperar valores, proporcionado por vector, deque, string y array.

Los iteradores que tienen mayores requisitos y por tanto tienen un acceso más eficaz a los elementos se pueden usar en lugar de los iteradores con menos requisitos. Por ejemplo, si se llama a un iterador hacia delante, se puede utilizar en su lugar un iterador de acceso aleatorio.

Visual Studio ha agregado extensiones a los iteradores de la Biblioteca estándar de C++ para admitir varias situaciones en modo depuración para los iteradores comprobados y no comprobados. Para obtener más información, consulte bibliotecas seguras: biblioteca estándar de C++.

Funciones

avanceIncrementa un iterador un número especificado de posiciones.
back_inserterCrea un iterador que puede insertar elementos en la parte posterior de un contenedor especificado.
comenzarRecupera un iterador en el primer elemento de un contenedor especificado.
cbeginRecupera un iterador constante en el primer elemento de un contenedor especificado.
cendRecupera un iterador constante en el elemento que sigue al último elemento del contenedor especificado.
distanciaDetermina el número de incrementos entre las posiciones direccionadas por dos iteradores.
finalRecupera un iterador en el elemento que sigue al último elemento del contenedor especificado.
front_inserterCrea un iterador que puede insertar elementos en la parte delantera de un contenedor especificado.
herramienta de inserciónAdaptador de iterador que agrega un nuevo elemento a un contenedor en un punto especificado de inserción.
make_checked_array_iteratorCrea un checked_array_iterator que puede usar otros algoritmos. Nota: esta función es una extensión de Microsoft de la biblioteca estándar de C++. El código implementado mediante esta función no es portable a los entornos de compilación estándar de C++ que no admiten esta extensión de Microsoft.
make_move_iteratorDevuelve un iterador de movimiento que contiene el iterador proporcionado como su iterador base almacenado.
make_unchecked_array_iteratorCrea un unchecked_array_iterator que puede usar otros algoritmos. Nota: esta función es una extensión de Microsoft de la biblioteca estándar de C++. El código implementado mediante esta función no es portable a los entornos de compilación estándar de C++ que no admiten esta extensión de Microsoft.
siguienteProcesa una iteración un número especificado de veces y devuelve la nueva posición del iterador.
PrevProcesa una iteración en dirección inversa un número especificado de veces y devuelve la nueva posición del iterador.

Operadores

operador! =Comprueba si el objeto iterador del lado izquierdo del operador no es igual que el objeto iterador del lado derecho.
operador ==Comprueba si el objeto iterador del lado izquierdo del operador es igual que el objeto iterador del lado derecho.
(operador)Comprueba si el objeto iterador del lado izquierdo del operador es menor que el objeto iterador del lado derecho.
(operador)<>Comprueba si el objeto iterador del lado izquierdo del operador es menor o igual que el objeto iterador del lado derecho.
operador >Comprueba si el objeto iterador del lado izquierdo del operador es mayor que el objeto iterador del lado derecho.
operador > =Comprueba si el objeto iterador del lado izquierdo del operador es mayor o igual que el objeto iterador del lado derecho.
operator +Agrega un desplazamiento a un iterador y devuelve el nuevo reverse_iterator que direcciona el elemento insertado en la nueva posición de desplazamiento.
operator-Resta un iterador de otro y devuelve la diferencia.

Clases

back_insert_iteratorLa clase de plantilla describe un objeto iterador de salida. Inserta elementos en un contenedor de tipo contenedor, que se accede mediante protegido puntero objeto que almacena denominado contenedor.
bidirectional_iterator_tagUna clase que proporciona un tipo de valor devuelto para una iterator_category función que representa un iterador bidireccional.
checked_array_iteratorClase que tiene acceso a una matriz mediante un iterador comprobado de acceso aleatorio. Nota: esta clase es una extensión de Microsoft de la biblioteca estándar de C++. El código implementado mediante esta función no es portable a los entornos de compilación estándar de C++ que no admiten esta extensión de Microsoft.
forward_iterator_tagUna clase que proporciona un tipo de valor devuelto para una iterator_category función que representa un iterador hacia delante.
front_insert_iteratorLa clase de plantilla describe un objeto iterador de salida. Inserta elementos en un contenedor de tipo contenedor, que se accede mediante protegido puntero objeto que almacena denominado contenedor.
input_iterator_tagUna clase que proporciona un tipo de valor devuelto para una iterator_category función que representa un iterador de entrada.
insert_iteratorLa clase de plantilla describe un objeto iterador de salida. Inserta elementos en un contenedor de tipo contenedor, que se accede mediante protegido puntero objeto que almacena denominado contenedor. También almacena protegido iterador objeto de clase Container:: Iterator, llamado iter.
istream_iteratorLa clase de plantilla describe un objeto iterador de entrada. Extrae objetos de clase Ty de una secuencia de entrada que se accede mediante un objeto que almacena, de tipo puntero a basic_istream < Elem, Tr>.
istreambuf_iteratorLa clase de plantilla describe un objeto iterador de entrada. Inserta elementos de clase Elem en un búfer de secuencia de salida que tiene acceso a través de un objeto que almacena, de tipo puntero a basic_streambuf < Elem, Tr>.
iteradorLa clase de plantilla se usa como tipo base para todos los iteradores.
iterator_traitsClase de plantilla auxiliar que proporciona los tipos críticos asociados a diferentes tipos de iterador para que se pueda hacer referencia a ellos de la misma manera.
move_iteratorUn objeto move_iterator almacena un iterador de acceso aleatorio de tipo RandomIterator. Se comporta como un iterador de acceso aleatorio, excepto cuando se desreferencia. El resultado de operator* se convierte implícitamente a value_type&&: para crear rvalue reference.
ostream_iteratorLa clase de plantilla describe un objeto iterador de salida. Inserta objetos de clase tipo en una secuencia de salida, que tiene acceso a través de un objeto que almacena, de tipo puntero a basic_ostream < Elem, Tr>.
ostreambuf_iterator (clase)La clase de plantilla describe un objeto iterador de salida. Inserta elementos de clase Elem en un búfer de secuencia de salida, que se accede mediante un objeto que almacena, de tipo puntero a basic_streambuf < Elem, Tr>.
output_iterator_tagUna clase que proporciona un tipo de valor devuelto de iterator_category función que representa un iterador de salida.
random_access_iterator_tagUna clase que proporciona un tipo de valor devuelto de iterator_category función que representa un iterador de acceso aleatorio.
reverse_iteratorLa clase de plantilla describe un objeto que se comporta como un iterador de acceso aleatorio, solo en orden inverso.
unchecked_array_iteratorClase que tiene acceso a una matriz mediante un iterador no comprobado de acceso aleatorio. Nota: esta clase es una extensión de Microsoft de la biblioteca estándar de C++. El código implementado mediante esta función no es portable a los entornos de compilación estándar de C++ que no admiten esta extensión de Microsoft.

Referencia de archivos de encabezado
Seguridad para subprocesos en la biblioteca estándar de C++
Biblioteca de plantillas estándar

Mostrar: