Libreria C ++ Iterator - bidirectional_iterator_tag

Descrizione

È utilizzato per identificare la categoria di un iteratore come iteratore bidirezionale e l'iteratore bidirezionale supporta almeno una delle seguenti operazioni.

C ++ 98

proprietà espressioni valide
È un file predefinito costruibile, copia-costruibile, copia-assegnabile e distruttibile

X a;

X b(a);

b = a;

Può essere confrontato per l'equivalenza utilizzando gli operatori di uguaglianza / disuguaglianza

(significativo quando entrambi i valori iteratori ripetono sulla stessa sequenza sottostante).

a == b

a != b

Può essere dereferenziato come valore (se in uno stato dereferenziabile ).

*a

a->m

Per iteratori mutabili ( iteratori non costanti ):

Può essere dereferenziato come lvalue (se in uno stato dereferenziabile ).

*a = t

Può essere incrementato (se in uno stato dereferenziabile ).

Il risultato è anche dereferenziabile o un iteratore passato alla fine .

Due iteratori che confrontano uguali, continuano a confrontare uguali dopo essere stati entrambi aumentati.

++a

a++

*a++

Può essere decrementato (se lo precede un valore iteratore dereferenziabile ).

--un

un--

*un--

C ++ 11

proprietà espressioni valide
È un file predefinito costruibile, copia-costruibile, copia-assegnabile e distruttibile

X a;

X b(a);

b = a;

Può essere confrontato per l'equivalenza utilizzando gli operatori di uguaglianza / disuguaglianza

(significativo quando entrambi i valori iteratori ripetono sulla stessa sequenza sottostante).

a == b

a != b

Può essere dereferenziato come valore (se in uno stato dereferenziabile ).

*a

a->m

Per iteratori mutabili ( iteratori non costanti ):

Può essere dereferenziato come lvalue (se in uno stato dereferenziabile ).

*a = t

Può essere incrementato (se in uno stato dereferenziabile ).

Il risultato è anche dereferenziabile o un iteratore passato alla fine .

Due iteratori che confrontano uguali, continuano a confrontare uguali dopo essere stati entrambi aumentati.

++a

a++

*a++

Può essere decrementato (se lo precede un valore iteratore dereferenziabile ).

--un

un--

*un--

I valori L sono scambiabili . swap(a,b)

Dichiarazione

Di seguito è riportata la dichiarazione per std :: bidirectional_iterator_tag.

C ++ 11

struct bidirectional_iterator_tag {}