Bibliothèque d'itérateur C ++ - input_iterator_tag

La description

Il est utilisé pour identifier la catégorie d'un itérateur en tant qu'itérateur d'entrée et tous les itérateurs d'entrée prennent en charge au moins une des opérations suivantes.

C ++ 98

propriété expressions valides
C'est une copie-constructible, copie-assignable et destructible

X b(a);

b = a;

Il peut être comparé pour l'équivalence en utilisant les opérateurs d'égalité / inégalité

(significatif si les deux itérateurs sont dans le domaine ).

a == b

a != b

Elle peut être déréférencée en tant que rvalue (si dans un état déréférencable ).

*a

a->m

Il peut être incrémenté (s'il est dans un état déréférençable ).

Le résultat est soit également déréférencable, soit un itérateur au-delà de la fin .

Il n'est pas nécessaire que la valeur de l'itérateur précédente soit déréférencable après l'augmentation.

++a

(void)a++

*a++

Son type de valeur n'a pas besoin d'être assignable t = u non requis

C ++ 11

propriété expressions valides
C'est une copie-constructible, copie-assignable et destructible

X b(a);

b = a;

Il peut être comparé pour l'équivalence en utilisant les opérateurs d'égalité / inégalité

(significatif si les deux itérateurs sont dans le domaine ).

a == b

a != b

Elle peut être déréférencée en tant que rvalue (si dans un état déréférencable ).

*a

a->m

Il peut être incrémenté (s'il est dans un état déréférençable ).

Le résultat est soit également déréférencable, soit un itérateur au-delà de la fin .

Il n'est pas nécessaire que la valeur de l'itérateur précédente soit déréférencable après l'augmentation.

++a

(void)a++

*a++

Son type de valeur n'a pas besoin d'être assignable t = u non requis
Les valeurs L sont permutables . swap(a,b)

Déclaration

Voici la déclaration pour std :: input_iterator_tag.

C ++ 11

struct input_iterator_tag {};