<iterator>
Définit les primitives des itérateurs, les itérateurs prédéfinis et les itérateurs de flux, ainsi que plusieurs modèles de prise en charge. Les itérateurs prédéfinis incluent des adaptateurs d'insertion et d'inversion. Il existe trois classes d'adaptateurs d'itérateur d'insertion : avant, arrière et général. Ils fournissent une sémantique d'insertion, différente de la sémantique de remplacement que les itérateurs de fonctions membres de conteneurs fournissent.
#include <iterator>
Notes
Les itérateurs sont une généralisation des pointeurs qui s'abstrait de leurs contraintes de telle sorte qu'un programme C++ puisse gérer différentes structures de données de manière uniforme. Les itérateurs se comportent comme des intermédiaires entre les conteneurs et les algorithmes génériques. Au lieu de traiter des types de données spécifiques, les algorithmes sont définis pour traiter une plage spécifiée par un type d'itérateur. Toute structure de données répondant aux exigences de l'itérateur peut être traitée par l'algorithme. Il existe cinq types ou catégories d'itérateur, chacun possédant son propre ensemble d'exigences et de fonctionnalités résultantes :
De sortie : se déplace vers l'avant, peut stocker mais pas récupérer des valeurs, fourni par ostream et inserter.
D'entrée : se déplace vers l'avant, peut récupérer mais pas stocker des valeurs, fourni par istream.
D'avance : se déplace vers l'avant, peut stocker et récupérer des valeurs.
Bidirectionnel : se déplace vers l'avant et l'arrière, peut stocker et récupérer des valeurs, fourni par list, set, multiset, map et multimap.
D'accès aléatoire : éléments accessibles dans n'importe quel ordre, peut stocker et récupérer des valeurs, fourni par vector, deque, string et array.
Les itérateurs qui ont des exigences supérieures et disposent d'un accès plus performant aux éléments peuvent être utilisés à la place d'itérateurs ayant moins d'exigences. Par exemple, si un itérateur d'avance est appelé, alors un itérateur d'accès aléatoire peut être utilisé à la place.
Visual Studio ajoute des extensions aux itérateurs de la bibliothèque C++ standard pour prendre en charge diverses situations en mode débogage pour les itérateurs vérifiés et non vérifiés. Pour plus d'informations, consultez Bibliothèques sécurisées : bibliothèque standard C++.
Fonctions
Incrémente un itérateur d'un nombre spécifié de positions. |
|
Crée un itérateur qui peut insérer des éléments à la fin d'un conteneur spécifié. |
|
Récupère un itérateur sur le premier élément d'un conteneur spécifié. |
|
Récupère un itérateur constant sur le premier élément d'un conteneur spécifié. |
|
Récupère un itérateur constant sur l'élément qui suit le dernier élément dans le conteneur spécifié. |
|
Détermine le nombre d'incréments entre les positions traitées par deux itérateurs. |
|
Récupère un itérateur de l'élément qui suit le dernier élément dans le conteneur spécifié. |
|
Crée un itérateur qui peut insérer des éléments à l'avant d'un conteneur spécifié. |
|
Adaptateur d'itérateur qui ajoute un nouvel élément à un conteneur à un point d'insertion donné. |
|
Crée un checked_array_iterator qui peut être utilisé par d'autres algorithmes. Notes Cette fonction est une extension Microsoft de la bibliothèque C++ standard.Le code implémenté à l'aide de cette fonction ne peut pas être utilisé dans les environnements de build C++ standard qui ne prennent pas en charge cette extension Microsoft. |
|
Retourne un itérateur de déplacement contenant l'itérateur fourni en tant qu'itérateur de base stocké. |
|
Crée un unchecked_array_iterator qui peut être utilisé par d'autres algorithmes. Notes Cette fonction est une extension Microsoft de la bibliothèque C++ standard.Le code implémenté à l'aide de cette fonction ne peut pas être utilisé dans les environnements de build C++ standard qui ne prennent pas en charge cette extension Microsoft. |
|
Itère un nombre de fois donné et retourne la nouvelle position de l'itérateur. |
|
Itère en sens inverse un nombre de fois donné et retourne la nouvelle position de l'itérateur. |
Opérateurs
Teste si l'objet itérateur situé à gauche de l'opérateur n'est pas égal à l'objet itérateur situé à droite. |
|
Teste si l'objet itérateur situé à gauche de l'opérateur est égal à l'objet itérateur situé à droite. |
|
Teste si l'objet itérateur situé à gauche de l'opérateur est inférieur à l'objet itérateur situé à droite. |
|
Teste si l'objet itérateur situé à gauche de l'opérateur est inférieur ou égal à l'objet itérateur situé à droite. |
|
Teste si l'objet itérateur situé à gauche de l'opérateur est supérieur à l'objet itérateur situé à droite. |
|
Teste si l'objet itérateur situé à gauche de l'opérateur est supérieur ou égal à l'objet itérateur situé à droite. |
|
Ajoute un décalage à un itérateur et retourne le nouvel reverse_iterator qui se rapporte à l'élément inséré à la nouvelle position décalée. |
|
Soustrait un itérateur à un autre et retourne la différence. |
Classes
Cette classe de modèle décrit un objet itérateur de sortie. Elle insère des éléments dans un conteneur de type Conteneur, auquel elle accède via l'objet pointeur protégé qu'elle stocke sous le nom de conteneur. |
|
Classe qui fournit un type de retour pour une fonction iterator_category représentant un itérateur bidirectionnel. |
|
Classe qui accède à un tableau en utilisant un itérateur vérifié d'accès aléatoire. Notes Cette classe est une extension Microsoft de la bibliothèque C++ standard.Le code implémenté à l'aide de cette fonction ne peut pas être utilisé dans les environnements de build C++ standard qui ne prennent pas en charge cette extension Microsoft. |
|
Classe qui fournit un type de retour pour une fonction iterator_category représentant un itérateur d'avance. |
|
Cette classe de modèle décrit un objet itérateur de sortie. Elle insère des éléments dans un conteneur de type Conteneur, auquel elle accède via l'objet pointeur protégé qu'elle stocke sous le nom de conteneur. |
|
Classe qui fournit un type de retour pour une fonction iterator_category représentant un itérateur d'entrée. |
|
Cette classe de modèle décrit un objet itérateur de sortie. Elle insère des éléments dans un conteneur de type Conteneur, auquel elle accède via l'objet pointeur protégé qu'elle stocke sous le nom de conteneur. Elle stocke également l'objet itérateur protégé, issu de la classe Container::iterator, appelé iter. |
|
Cette classe de modèle décrit un objet itérateur d'entrée. Elle extrait des objets de classe Ty d'un flux d'entrée, auquel elle accède via un objet qu'elle stocke, de type pointeur vers basic_istream<Elem, Tr>. |
|
Cette classe de modèle décrit un objet itérateur d'entrée. Elle insère des éléments de classe Elem dans une mémoire tampon de flux de sortie, à laquelle elle accède via un objet qu'elle stocke, de type pointeur vers basic_streambuf<Elem, Tr>. |
|
Cette classe de modèle est utilisée comme type de base pour tous les itérateurs. |
|
Classe d'assistance de modèle fournissant des types critiques qui sont associés à différents types d'itérateur afin de pouvoir être référencés de la même façon. |
|
Un objet move_iterator stocke un itérateur d'accès aléatoire de type RandomIterator. Il se comporte comme un itérateur d'accès aléatoire, sauf lorsqu'il est déréférencé. Le résultat de operator* est implicitement casté en value_type&&: pour créer une rvalue reference. |
|
Cette classe de modèle décrit un objet itérateur de sortie. Elle insère des objets de classe Type dans un flux de sortie, auquel elle accède via un objet qu'elle stocke, de type pointeur vers basic_ostream<Elem, Tr>. |
|
Cette classe de modèle décrit un objet itérateur de sortie. Elle insère des éléments de classe Elem dans une mémoire tampon de flux de sortie, à laquelle elle accède via un objet qu'elle stocke, de type pointeur vers basic_streambuf<Elem, Tr>. |
|
Classe qui fournit un type de retour pour une fonction iterator_category représentant un itérateur de sortie. |
|
Classe qui fournit un type de retour pour une fonction iterator_category représentant un itérateur d'accès aléatoire. |
|
Cette classe de modèle décrit un objet qui se comporte comme un itérateur d'accès aléatoire, mais en sens inverse. |
|
Classe qui accède à un tableau en utilisant un itérateur non vérifié d'accès aléatoire. Notes Cette classe est une extension Microsoft de la bibliothèque C++ standard.Le code implémenté à l'aide de cette fonction ne peut pas être utilisé dans les environnements de build C++ standard qui ne prennent pas en charge cette extension Microsoft. |
Voir aussi
Référence
Sécurité des threads dans la bibliothèque standard C++
Bibliothèque STL (Standard Template Library)