Share via


<iterator>

Definisce iteratori predefiniti e iteratori di flusso, primitive iteratore e modelli di supporto.

Requisiti

Intestazione:<iterator>

Spazio dei nomistd:

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 pointerbasic_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_iteratorC++20 Specifica un iteratore in grado di leggere e scrivere sia avanti che indietro.
contiguous_iteratorC++20 Specifica un iteratore i cui elementi sono sequenziali in memoria, le stesse dimensioni e possono essere accessibili usando l'aritmetica del puntatore.
forward_iteratorC++20 Specifica un iteratore in grado di leggere (ed eventualmente scrivere) più volte.
input_iteratorC++20 Specifica un iteratore da cui è possibile leggere almeno una volta.
input_or_output_iteratorC++20 Base della tassonomia del concetto di iteratore.
output_iterator Specifica un iteratore in cui è possibile scrivere.
random_access_iteratorC++20 Specifica un iteratore che è possibile leggere e scrivere in base all'indice.
sentinel_forC++20 Specifica un sentinel per un tipo di iteratore.
sized_sentinel_forC++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++