Biblioteca Iterator C ++ - input_iterator_tag

Descrição

É usado para identificar a categoria de um iterador como um iterador de entrada e todos os iteradores de entrada suportam pelo menos uma das seguintes operações.

C ++ 98

propriedade expressões válidas
É uma cópia construtível, atribuível por cópia e destrutível

X b(a);

b = a;

Pode ser comparado para equivalência usando os operadores de igualdade / desigualdade

(significativo se ambos os iteradores estiverem no domínio ).

a == b

a != b

Ele pode ser desreferenciado como um rvalue (se estiver em um estado desreferenciável ).

*a

a->m

Ele pode ser incrementado (se estiver em um estado não referenciável ).

O resultado também pode ser desreferenciável ou um iterador ultrapassado .

O valor do iterador anterior não precisa ser referenciável após o aumento.

++a

(void)a++

*a++

Seu tipo de valor não precisa ser atribuível t = u não requerido

C ++ 11

propriedade expressões válidas
É uma cópia construtível, atribuível por cópia e destrutível

X b(a);

b = a;

Pode ser comparado para equivalência usando os operadores de igualdade / desigualdade

(significativo se ambos os iteradores estiverem no domínio ).

a == b

a != b

Ele pode ser desreferenciado como um rvalue (se estiver em um estado desreferenciável ).

*a

a->m

Ele pode ser incrementado (se estiver em um estado não referenciável ).

O resultado também pode ser desreferenciável ou um iterador ultrapassado .

O valor do iterador anterior não precisa ser referenciável após o aumento.

++a

(void)a++

*a++

Seu tipo de valor não precisa ser atribuível t = u não requerido
Lvalues ​​são trocáveis . swap(a,b)

Declaração

A seguir está a declaração para std :: input_iterator_tag.

C ++ 11

struct input_iterator_tag {};