<iterator>
Definisce le primitive degli iteratori, gli iteratori predefiniti e gli iteratori di flusso, nonché diversi modelli di supporto. Gli iteratori predefiniti includono gli adattatori di inversione e di inserimento. Esistono tre classi di adattatori degli iteratori di inserimento: front, back e general. Tali classi forniscono la semantica di inserimento anziché la semantica di sovrascrittura fornita dagli iteratori delle funzioni membro del contenitore.
#include <iterator>
Note
Gli iteratori costituiscono una generalizzazione dei puntatori, che astraggono dai requisiti di tali puntatori in modo da consentire al programma C++ di utilizzare strutture di dati diverse in maniera uniforme. Gli iteratori fungono da intermediari tra i contenitori e gli algoritmi generici. Anziché operare su tipi di dati specifici, gli algoritmi vengono definiti per operare su un intervallo specificato da un tipo di iteratore. L'algoritmo può operare su qualsiasi struttura di dati che soddisfa i requisiti dell'iteratore. Esistono cinque tipi o categorie di iteratori, ciascuno dotato di un proprio set di requisiti e funzionalità risultanti:
Output: spostamento in avanti, può archiviare ma non recuperare i valori forniti da ostream e inserter.
Input: spostamento in avanti, può recuperare ma non archiviare i valori forni da istream.
In avanti: spostamento in avanti, può archiviare e recuperare i valori.
Bidirezionale: spostamento in avanti e indietro, può archiviare e recuperare i valori forniti da list, set, multiset, map e multimap.
Accesso casuale: elementi a cui si accede in qualsiasi ordine, può archiviare e recuperare i valori forniti da vector, deque, string e array.
Gli iteratori che dispongono di un numero maggiore di requisiti e quindi di un accesso più efficiente possono essere utilizzati al posto degli iteratori con un numero inferiore di requisiti. Ad esempio, nel caso in cui venga chiamato un iteratore in avanti, può essere invece utilizzato un iteratore ad accesso casuale.
Sono state aggiunte estensioni agli iteratori della libreria standard C++ per supportare diverse situazioni relative alla modalità di debug per gli iteratori verificati e non verificati. Per ulteriori informazioni, vedere Librerie protette: libreria standard C++.
Funzioni
Incrementa un iteratore di un numero specificato di posizioni. |
|
Crea un iteratore in grado di inserire gli elementi nella parte finale di un contenitore specificato. |
|
Recupera un iteratore al primo elemento di un contenitore specificato. |
|
Recupera un iteratore costante al primo elemento di un contenitore specificato. |
|
Recupera un iteratore costante all'elemento successivo all'ultimo elemento del contenitore specificato. |
|
Determina il numero di incrementi tra le posizioni a cui puntano due iteratori. |
|
Recupera un iteratore all'elemento successivo all'ultimo elemento nel contenitore specificato. |
|
Crea un iteratore in grado di inserire elementi all'inizio di un contenitore specificato. |
|
Adattatore dell'iteratore che aggiunge un nuovo elemento a un contenitore in corrispondenza di un punto di inserimento specificato. |
|
Crea un checked_array_iterator che può essere utilizzato da altri algoritmi. Nota Questa funzione è un'estensione Microsoft della libreria C++ standard.Il codice implementato mediante questa funzione non può essere trasferito negli ambienti di compilazione standard di C++ che non supportano questa estensione Microsoft. |
|
Restituisce un iteratore di spostamento contenente l'iteratore fornito come relativo iteratore di base archiviato. |
|
Crea unchecked_array_iterator utilizzabile da altri algoritmi. Nota Questa funzione è un'estensione Microsoft della libreria C++ standard.Il codice implementato mediante questa funzione non può essere trasferito negli ambienti di compilazione standard di C++ che non supportano questa estensione Microsoft. |
|
Esegue l'iterazione per un numero specificato di volte e restituisce la nuova posizione dell'iteratore. |
|
Esegue l'iterazione in ordine inverso per un numero specificato di volte e restituisce la nuova posizione dell'iteratore. |
Operatori
Verifica se l'oggetto iteratore a sinistra dell'operatore non è uguale all'oggetto iteratore a destra. |
|
Verifica se l'oggetto iteratore a sinistra dell'operatore è uguale all'oggetto iteratore a destra. |
|
Verifica se l'oggetto iteratore a sinistra dell'operatore è minore all'oggetto iteratore a destra. |
|
Verifica se l'oggetto iteratore a sinistra dell'operatore è minore o uguale all'oggetto iteratore a destra. |
|
Verifica se l'oggetto iteratore a sinistra dell'operatore è maggiore dell'oggetto iteratore a destra. |
|
Verifica se l'oggetto iteratore a sinistra dell'operatore è maggiore o uguale all'oggetto iteratore a destra. |
|
Aggiunge un offset a un iteratore e restituisce il nuovo reverse_iterator che punta all'elemento inserito in corrispondenza della nuova posizione dell'offset. |
|
Sottrae un iteratore da un altro e restituisce la differenza. |
Classi
La classe modello descrive un oggetto iteratore di output. Inserisce gli elementi in un contenitore di tipo Container, a cui accede tramite l'oggetto pointer protetto archiviato denominato contenitore. |
|
Classe che fornisce un tipo restituito per una funzione iterator_category che rappresenta un iteratore bidirezionale. |
|
Classe che accede a una matrice mediante un iteratore verificato ad accesso causale. Nota Questa classe è un'estensione Microsoft della libreria C++ standard.Il codice implementato mediante questa funzione non può essere trasferito negli ambienti di compilazione standard di C++ che non supportano questa estensione Microsoft. |
|
Classe che fornisce un tipo restituito per una funzione iterator_category che rappresenta un iteratore in avanti. |
|
La classe modello descrive un oggetto iteratore di output. Inserisce gli elementi in un contenitore di tipo Container, a cui accede tramite l'oggetto pointer protetto archiviato denominato contenitore. |
|
Classe che restituisce un tipo restituito per una funzione iterator_category che rappresenta un iteratore di input. |
|
La classe modello descrive un oggetto iteratore di output. Inserisce gli elementi in un contenitore di tipo Container, a cui accede tramite l'oggetto pointer protetto archiviato denominato contenitore. Archivia inoltre l'oggetto iterator protetto, della classe Container::iterator, denominato iter. |
|
La classe modello descrive un oggetto iteratore di input. Estrae gli oggetti della classe Ty da un flusso di input, a cui accede tramite un oggetto archiviato di tipo puntatore a basic_istream<Elem, Tr>. |
|
La classe modello descrive un oggetto iteratore di input. Inserisce gli elementi della classe Elem in un buffer del flusso di output, a cui accede tramite un oggetto archiviato di tipo pointer a basic_streambuf<Elem, Tr>. |
|
La classe modello viene utilizzata come tipo di base per tutti gli iteratori. |
|
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. |
|
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. |
|
La classe modello descrive un oggetto iteratore di output. Inserisce gli elementi della classe Type in un flusso di output, a cui accede tramite un oggetto archiviato di tipo pointer a basic_ostream<Elem, Tr>. |
|
La classe modello descrive un oggetto iteratore di output. Inserisce gli elementi della classe Elem in un buffer del flusso di output, a cui accede tramite un oggetto archiviato di tipo pointer a basic_streambuf<Elem, Tr>. |
|
Classe che restituisce un tipo restituito per una funzione iterator_category che rappresenta un iteratore di output. |
|
Classe che restituisce un tipo restituito per una funzione iterator_category che rappresenta un iteratore ad accesso casuale. |
|
La classe modello descrive un oggetto che si comporta come un iteratore ad accesso casuale solo in senso inverso. |
|
Classe che accede a una matrice mediante un iteratore ad accesso causale non verificato. Nota Questa classe è un'estensione Microsoft della libreria C++ standard.Il codice implementato mediante questa funzione non può essere trasferito negli ambienti di compilazione standard di C++ che non supportano questa estensione Microsoft. |
Vedere anche
Riferimenti
Sicurezza dei thread nella libreria standard C++