Libreria Iterator C ++ - random_access_iterator_tag

Descrizione

Viene utilizzato per identificare la categoria di un iteratore e un iteratore ad accesso casuale 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 dell'iteratore 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 preceduto da un valore iteratore dereferenziabile ).

--un

un--

*un--

Supporta gli operatori aritmetici +e -tra un iteratore e un valore intero o sottraendo un iteratore da un altro.

a + n

n + a

a - n

a - b

Possono essere confrontati con gli operatori relazionali disuguaglianza ( <, >, <=e >=).

a < b

a > b

a <= b

a >= b

Supporta operazioni di assegnazione composta +=e-=

a += n

a -= n

Supporta l'operatore di dereferenziazione offset ( []) a[n]

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 dell'iteratore 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 preceduto da un valore iteratore dereferenziabile ).

--un

un--

*un--

Supporta gli operatori aritmetici +e -tra un iteratore e un valore intero o sottraendo un iteratore da un altro.

a + n

n + a

a - n

a - b

Può essere confrontato con gli operatori relazionali disuguaglianza ( <, >, <=e >=).

a < b

a > b

a <= b

a >= b

Supporta operazioni di assegnazione composta +=e-=

a += n

a -= n

Supporta l'operatore di dereferenziazione offset ( []) a[n]
I valori L sono scambiabili . swap(a,b)

Dichiarazione

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

C ++ 11

struct random_access_iterator_tag {};