<iterator>
Definisce iteratori predefiniti e iteratori di flusso, primitive iteratore e modelli di supporto.
Requisiti
Intestazione: <iterator>
Spazio dei nomi: std
Osservazioni:
Gli iteratori sono una generalizzazione di puntatori che consentono a un programma C++ di lavorare con strutture di dati diverse in modo uniforme. Anziché operare su tipi di dati specifici, gli algoritmi operano su un intervallo di valori come specificato da un tipo di iteratore. Gli algoritmi possono operare su qualsiasi struttura di dati che soddisfi i requisiti dell'iteratore.
In C++20 sono disponibili sei categorie di iteratori. Gli iteratori sono disposti in una gerarchia di funzionalità. Le relative funzionalità sono specificate dai concetti di C++20. Per una descrizione dei vari iteratori e delle relative funzionalità, vedere Concetti relativi agli iteratori
Visual Studio ha aggiunto estensioni agli iteratori della libreria standard C++ per supportare il debug per gli iteratori controllati e deselezionati. Per altre informazioni, vedere Librerie protette: libreria standard.
Membri
Funzioni
Nome | Descrizione |
---|---|
advance |
Incrementa un iteratore di un numero specificato di posizioni. |
back_inserter |
Crea un iteratore in grado di inserire gli elementi nella parte finale di un contenitore specificato. |
begin |
Recupera un iteratore al primo elemento di un contenitore specificato. |
cbegin |
Recupera un iteratore di sola lettura nel primo elemento di un contenitore specificato. |
cend |
Recupera un iteratore di sola lettura all'elemento che segue l'ultimo elemento nel contenitore specificato. |
crbegin |
Ottiene un iteratore di sola lettura inverso all'inizio del contenitore specificato. |
crend |
Ottenere l'sentinel alla fine di ciò che crbegin() restituisce. |
data |
Ottenere un puntatore al primo elemento nel contenitore specificato. |
distance |
Determina il numero di incrementi tra le posizioni a cui puntano due iteratori. |
end |
Recupera un iteratore all'elemento successivo all'ultimo elemento nel contenitore specificato. |
empty |
Verificare se il contenitore specificato è vuoto. |
front_inserter |
Crea un iteratore in grado di inserire elementi all'inizio di un contenitore specificato. |
inserter |
Adattatore dell'iteratore che aggiunge un nuovo elemento a un contenitore in corrispondenza di un punto di inserimento specificato. |
make_checked_array_iterator |
Crea un oggetto checked_array_iterator che può essere utilizzato da altri algoritmi. Nota: questa funzione è un'estensione Microsoft della libreria standard C++. Il codice implementato tramite questa funzione non è portabile in ambienti di compilazione C++ Standard che non supportano questa estensione Microsoft. |
make_move_iterator |
Restituisce un iteratore di spostamento contenente l'iteratore fornito come relativo iteratore di base archiviato. |
make_unchecked_array_iterator |
Crea un oggetto unchecked_array_iterator che può essere utilizzato da altri algoritmi. Nota: questa funzione è un'estensione Microsoft della libreria standard C++. Il codice implementato tramite questa funzione non è portabile in ambienti di compilazione C++ Standard che non supportano questa estensione Microsoft. |
next |
Esegue l'iterazione per un numero specificato di volte e restituisce la nuova posizione dell'iteratore. |
prev |
Esegue l'iterazione in ordine inverso per un numero specificato di volte e restituisce la nuova posizione dell'iteratore. |
rbegin |
Ottenere un iteratore inverso all'inizio del contenitore specificato. |
rend |
Ottenere un iteratore inverso nella sentinella alla fine del contenitore specificato. |
size |
Ottiene il numero di elementi. |
Operatori
Nome | Descrizione |
---|---|
operator!= |
Verifica se l'oggetto iteratore a sinistra dell'operatore non è uguale all'oggetto iteratore a destra. |
operator== |
Verifica se l'oggetto iteratore a sinistra dell'operatore è uguale all'oggetto iteratore a destra. |
operator< |
Verifica se l'oggetto iteratore a sinistra dell'operatore è minore all'oggetto iteratore a destra. |
operator<= |
Verifica se l'oggetto iteratore a sinistra dell'operatore è minore o uguale all'oggetto iteratore a destra. |
operator> |
Verifica se l'oggetto iteratore a sinistra dell'operatore è maggiore dell'oggetto iteratore a destra. |
operator>= |
Verifica se l'oggetto iteratore a sinistra dell'operatore è maggiore o uguale all'oggetto iteratore a destra. |
operator+ |
Aggiunge un offset a un iteratore e restituisce il nuovo reverse_iterator che punta all'elemento inserito in corrispondenza della nuova posizione dell'offset. |
operator- |
Sottrae un iteratore da un altro e restituisce la differenza. |
Classi
Nome | Descrizione |
---|---|
back_insert_iterator |
Il modello di classe descrive un oggetto iteratore di output. Inserisce gli elementi in un contenitore di tipo Container , a cui accede tramite l'oggetto protetto pointer archiviato denominato contenitore. |
bidirectional_iterator_tag |
Classe che fornisce un tipo restituito per una iterator_category funzione che rappresenta un iteratore bidirezionale. |
checked_array_iterator |
Classe che accede a una matrice mediante un iteratore verificato ad accesso causale. Nota: questa classe è un'estensione Microsoft della libreria standard C++. Il codice implementato tramite questa funzione non è portabile in ambienti di compilazione C++ Standard che non supportano questa estensione Microsoft. |
forward_iterator_tag |
Classe che fornisce un tipo restituito per una iterator_category funzione che rappresenta un iteratore in avanti. |
front_insert_iterator |
Il modello di classe descrive un oggetto iteratore di output. Inserisce gli elementi in un contenitore di tipo Container , a cui accede tramite l'oggetto protetto pointer archiviato denominato contenitore. |
input_iterator_tag |
Classe che fornisce un tipo restituito per una iterator_category funzione che rappresenta un iteratore di input. |
insert_iterator |
Il modello di classe descrive un oggetto iteratore di output. Inserisce gli elementi in un contenitore di tipo Container , a cui accede tramite l'oggetto protetto pointer archiviato denominato contenitore. Archivia anche l'oggetto protetto iterator , della classe Container::iterator , denominata iter . |
istream_iterator |
Il modello di classe descrive un oggetto iteratore di input. Estrae oggetti della classe Ty da un flusso di input a cui accede tramite un oggetto archiviato, di tipo puntatore a basic_istream<Elem, Tr> . |
istreambuf_iterator |
Il modello di classe descrive un oggetto iteratore di input. Inserisce elementi della classe Elem in un buffer del flusso di output a cui accede tramite un oggetto archiviato, di tipo pointer .basic_streambuf<Elem, Tr> |
iterator |
Il modello di classe viene usato come tipo di base per tutti gli iteratori. |
iterator_traits |
Classe helper del modello che fornisce tipi critici associati a diversi tipi di iteratori in modo che sia possibile fare riferimento a essi nello stesso modo. |
move_iterator |
Un oggetto move_iterator consente di archiviare un iteratore ad accesso casuale di tipo RandomIterator . Si comporta come un iteratore ad accesso casuale, salvo quando viene dereferenziato. Viene eseguito il cast in modo implicito del risultato di operator* a value_type&&: per creare un rvalue reference . |
ostream_iterator |
Il modello di classe descrive un oggetto iteratore di output. Inserisce oggetti della classe Type in un flusso di output a cui accede tramite un oggetto archiviato, di tipo pointer basic_ostream<Elem, Tr> . |
ostreambuf_iterator |
Il modello di classe descrive un oggetto iteratore di output. Inserisce elementi della classe Elem in un buffer del flusso di output a cui accede tramite un oggetto archiviato, di tipo puntatore a basic_streambuf<Elem, Tr> . |
output_iterator_tag |
Classe che fornisce un tipo restituito per iterator_category la funzione che rappresenta un iteratore di output. |
random_access_iterator_tag |
Classe che fornisce un tipo restituito per iterator_category la funzione che rappresenta un iteratore ad accesso casuale. |
reverse_iterator |
Il modello di classe descrive un oggetto che si comporta come un iteratore ad accesso casuale, solo inverso. |
unchecked_array_iterator |
Classe che accede a una matrice mediante un iteratore ad accesso causale non verificato. Nota: questa classe è un'estensione Microsoft della libreria standard C++. Il codice implementato tramite questa funzione non è portabile in ambienti di compilazione C++ Standard che non supportano questa estensione Microsoft. |
Concetti
I concetti seguenti sono definiti nello spazio dei std
nomi . Si applicano agli iteratori e sono correlati anche alle categorie di iteratori per gli intervalli descritti nei <ranges>
concetti.
Concetto di iteratore | Descrizione |
---|---|
bidirectional_iterator C++20 |
Specifica un iteratore in grado di leggere e scrivere sia avanti che indietro. |
contiguous_iterator C++20 |
Specifica un iteratore i cui elementi sono sequenziali in memoria, le stesse dimensioni e possono essere accessibili usando l'aritmetica del puntatore. |
forward_iterator C++20 |
Specifica un iteratore in grado di leggere (ed eventualmente scrivere) più volte. |
input_iterator C++20 |
Specifica un iteratore da cui è possibile leggere almeno una volta. |
input_or_output_iterator C++20 |
Base della tassonomia del concetto di iteratore. |
output_iterator |
Specifica un iteratore in cui è possibile scrivere. |
random_access_iterator C++20 |
Specifica un iteratore che è possibile leggere e scrivere in base all'indice. |
sentinel_for C++20 |
Specifica un sentinel per un tipo di iteratore. |
sized_sentinel_for C++20 |
Specifica che un iteratore e il relativo sentinella possono essere sottratti (usando - ) per trovare la differenza nel tempo costante. |
Vedi anche
Riferimento file di intestazione
Thread Safety in the C++ Standard Library (Sicurezza dei thread nella libreria standard C++)
Informazioni di riferimento per la libreria standard C++