Biblioteca Iterator C ++ - forward_iterator_tag

Descrição

É um iterador que pode ser usado para acessar a sequência de elementos em um intervalo na direção que vai do início ao fim.

C ++ 98

propriedade expressões válidas
É um padrão construtível, construtível por cópia, atribuível por cópia e destrutível

X a;

X b(a);

b = a;

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

(significativo quando ambos os valores do iterador iteram na mesma sequência subjacente).

a == b

a != b

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

*a

a->m

Para iteradores mutáveis ( iteradores não constantes ):

Pode ser desreferenciado como um lvalue (se em um estado desreferenciável ).

*a = t

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 .

Dois iteradores que comparam iguais, continuam comparando iguais quando ambos são aumentados.

++a

a++

*a++

C ++ 11

propriedade expressões válidas
É um padrão construtível, construtível por cópia, atribuível e destrutível

X a;

X b(a);

b = a;

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

(significativo quando ambos os valores do iterador iteram na mesma sequência subjacente).

a == b

a != b

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

*a

a->m

Para iteradores mutáveis ( iteradores não constantes ):

Pode ser desreferenciado como um lvalue (se em um estado desreferenciável ).

*a = t

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 .

Dois iteradores que comparam iguais, continuam comparando iguais quando ambos são aumentados.

++a

a++

*a++

Lvalues ​​são trocáveis . swap(a,b)

Declaração

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

C ++ 11

struct forward_iterator_tag {};