Biblioteca de iteradores de C ++ - bidirectional_iterator_tag
Descripción
Se utiliza para identificar la categoría de un iterador como un iterador bidireccional y el iterador bidireccional admite al menos una de las siguientes operaciones.
C ++ 98
propiedad | expresiones válidas |
---|---|
Es una copia-construible, copia-asignable y destructible por defecto. |
|
Se puede comparar la equivalencia utilizando los operadores de igualdad / desigualdad (significativo cuando ambos valores del iterador iteran sobre la misma secuencia subyacente). |
|
Puede desreferenciarse como un rvalue (si está en un estado desreferenciable ). |
|
Para iteradores mutables ( iteradores no constantes ): Puede desreferenciarse como un valor l (si se encuentra en un estado desreferenciable ). |
*a = t |
Puede incrementarse (si está en un estado desreferenciable ). El resultado también es desreferenciable o un iterador pasado al final . Dos iteradores que se comparan iguales, siguen comparando iguales después de que ambos aumentan. |
|
Puede decrementarse (si lo precede un valor de iterador desreferenciable ). |
--un un-- *un-- |
C ++ 11
propiedad | expresiones válidas |
---|---|
Es una copia-construible, copia-asignable y destructible por defecto. |
|
Se puede comparar la equivalencia utilizando los operadores de igualdad / desigualdad (significativo cuando ambos valores del iterador iteran sobre la misma secuencia subyacente). |
|
Puede desreferenciarse como un rvalue (si está en un estado desreferenciable ). |
|
Para iteradores mutables ( iteradores no constantes ): Puede desreferenciarse como un valor l (si se encuentra en un estado desreferenciable ). |
*a = t |
Puede incrementarse (si está en un estado desreferenciable ). El resultado también es desreferenciable o un iterador pasado al final . Dos iteradores que se comparan iguales, siguen comparando iguales después de que ambos aumentan. |
|
Puede decrementarse (si lo precede un valor de iterador desreferenciable ). |
--un un-- *un-- |
Los valores L son intercambiables . | swap(a,b) |
Declaración
A continuación se muestra la declaración de std :: bidirectional_iterator_tag.
C ++ 11
struct bidirectional_iterator_tag {}