<iterator>

Définit des itérateurs prédéfinis et des itérateurs de flux, des primitives d’itérateur et des modèles de prise en charge.

Spécifications

En-tête<iterator>:

Espace de noms :std

Notes

Les itérateurs sont une généralisation des pointeurs qui permettent à un programme C++ d’utiliser différentes structures de données de manière uniforme. Au lieu de fonctionner sur des types de données spécifiques, les algorithmes opèrent sur une plage de valeurs spécifiée par un type d’itérateur. Les algorithmes peuvent fonctionner sur n’importe quelle structure de données qui répond aux exigences de l’itérateur.

En C++20, il existe six catégories d’itérateurs. Les itérateurs sont organisés dans une hiérarchie de fonctionnalités. Leurs fonctionnalités sont spécifiées par les concepts C++20. Pour obtenir une description des différents itérateurs et de leurs fonctionnalités, consultez les concepts d’itérateur

Visual Studio a ajouté des extensions aux itérateurs de bibliothèque standard C++ pour prendre en charge le débogage des itérateurs case activée et non case activée ed. Pour plus d’informations, consultez Bibliothèques sécurisées : bibliothèque standard C++.

Membres

Functions

Nom Description
advance Incrémente un itérateur d'un nombre spécifié de positions.
back_inserter Crée un itérateur qui peut insérer des éléments à la fin d'un conteneur spécifié.
begin Récupère un itérateur sur le premier élément d'un conteneur spécifié.
cbegin Récupère un itérateur en lecture seule dans le premier élément d’un conteneur spécifié.
cend Récupère un itérateur en lecture seule sur l’élément qui suit le dernier élément du conteneur spécifié.
crbegin Obtenez un itérateur en lecture seule inverse au début du conteneur spécifié.
crend Obtenez la sentinelle à la fin de ce qui crbegin() retourne.
data Obtenez un pointeur vers le premier élément du conteneur spécifié.
distance Détermine le nombre d'incréments entre les positions traitées par deux itérateurs.
end Récupère un itérateur de l'élément qui suit le dernier élément dans le conteneur spécifié.
empty Testez si le conteneur spécifié est vide.
front_inserter Crée un itérateur qui peut insérer des éléments à l'avant d'un conteneur spécifié.
inserter Adaptateur d'itérateur qui ajoute un nouvel élément à un conteneur à un point d'insertion donné.
make_checked_array_iterator Crée un checked_array_iterator qui peut être utilisé par d’autres algorithmes. Remarque : Cette fonction est une extension Microsoft de la bibliothèque standard C++. Le code implémenté à l’aide de cette fonction n’est pas portable pour les environnements de build C++ Standard qui ne prennent pas en charge cette extension Microsoft.
make_move_iterator Retourne un itérateur de déplacement contenant l'itérateur fourni en tant qu'itérateur de base stocké.
make_unchecked_array_iterator Crée un unchecked_array_iterator qui peut être utilisé par d’autres algorithmes. Remarque : Cette fonction est une extension Microsoft de la bibliothèque standard C++. Le code implémenté à l’aide de cette fonction n’est pas portable pour les environnements de build C++ Standard qui ne prennent pas en charge cette extension Microsoft.
next Itère un nombre de fois donné et retourne la nouvelle position de l'itérateur.
prev Itère en sens inverse un nombre de fois donné et retourne la nouvelle position de l'itérateur.
rbegin Obtenez un itérateur inverse au début du conteneur spécifié.
rend Obtenez un itérateur inverse vers la sentinelle à la fin du conteneur spécifié.
size Obtenez le nombre d’éléments.

Opérateurs

Nom Description
operator!= Teste si l’objet itérateur situé à gauche de l’opérateur n’est pas égal à l’objet itérateur situé à droite.
operator== Teste si l'objet itérateur situé à gauche de l'opérateur est égal à l'objet itérateur situé à droite.
operator< Teste si l'objet itérateur situé à gauche de l'opérateur est inférieur à l'objet itérateur situé à droite.
operator<= Teste si l'objet itérateur situé à gauche de l'opérateur est inférieur ou égal à l'objet itérateur situé à droite.
operator> Teste si l'objet itérateur situé à gauche de l'opérateur est supérieur à l'objet itérateur situé à droite.
operator>= Teste si l'objet itérateur situé à gauche de l'opérateur est supérieur ou égal à l'objet itérateur situé à droite.
operator+ 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.
operator- Soustrait un itérateur à un autre et retourne la différence.

Classes

Nom Description
back_insert_iterator Le modèle de classe décrit un objet itérateur de sortie. Il insère des éléments dans un conteneur de type Container, auquel il accède via l’objet protégé pointer qu’il stocke appelé conteneur.
bidirectional_iterator_tag Classe qui fournit un type de retour pour une iterator_category fonction qui représente un itérateur bidirectionnel.
checked_array_iterator Classe qui accède à un tableau en utilisant un itérateur vérifié d'accès aléatoire. Remarque : Cette classe est une extension Microsoft de la bibliothèque standard C++. Le code implémenté à l’aide de cette fonction n’est pas portable pour les environnements de build C++ Standard qui ne prennent pas en charge cette extension Microsoft.
forward_iterator_tag Classe qui fournit un type de retour pour une iterator_category fonction qui représente un itérateur de transfert.
front_insert_iterator Le modèle de classe décrit un objet itérateur de sortie. Il insère des éléments dans un conteneur de type Container, auquel il accède via l’objet protégé pointer qu’il stocke appelé conteneur.
input_iterator_tag Classe qui fournit un type de retour pour une iterator_category fonction qui représente un itérateur d’entrée.
insert_iterator Le modèle de classe décrit un objet itérateur de sortie. Il insère des éléments dans un conteneur de type Container, auquel il accède via l’objet protégé pointer qu’il stocke appelé conteneur. Il stocke également l’objet protégé iterator , de classe Container::iterator, appelé iter.
istream_iterator Le modèle de classe décrit un objet d’itérateur d’entrée. Il extrait des objets de classe Ty à partir d’un flux d’entrée, auquel il accède par le biais d’un objet qu’il stocke, de type pointeur vers basic_istream<Elem, Tr>.
istreambuf_iterator Le modèle de classe décrit un objet d’itérateur d’entrée. Il insère des éléments de classe Elem dans une mémoire tampon de flux de sortie, auquel il accède via un objet qu’il stocke, de type pointer à basic_streambuf<Elem, Tr>.
iterator Le modèle de classe est utilisé comme type de base pour tous les itérateurs.
iterator_traits 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.
move_iterator 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.
ostream_iterator Le modèle de classe décrit un objet itérateur de sortie. Il insère des objets de classe Type dans un flux de sortie, auquel il accède via un objet qu’il stocke, de type pointer à basic_ostream<Elem, Tr>.
ostreambuf_iterator Le modèle de classe décrit un objet itérateur de sortie. Il insère des éléments de classe Elem dans une mémoire tampon de flux de sortie, auquel il accède par le biais d’un objet qu’il stocke, de type pointeur vers basic_streambuf<Elem, Tr>.
output_iterator_tag Classe qui fournit un type de retour pour iterator_category la fonction qui représente un itérateur de sortie.
random_access_iterator_tag Classe qui fournit un type de retour pour iterator_category la fonction qui représente un itérateur d’accès aléatoire.
reverse_iterator Le modèle de classe décrit un objet qui se comporte comme un itérateur d’accès aléatoire, uniquement en inverse.
unchecked_array_iterator Classe qui accède à un tableau en utilisant un itérateur non vérifié d'accès aléatoire. Remarque : Cette classe est une extension Microsoft de la bibliothèque standard C++. Le code implémenté à l’aide de cette fonction n’est pas portable pour les environnements de build C++ Standard qui ne prennent pas en charge cette extension Microsoft.

Concepts

Les concepts suivants sont définis dans l’espace std de noms. Ils s’appliquent aux itérateurs et sont également liés aux catégories d’itérateurs pour les plages décrites dans <ranges> les concepts.

Concept d’itérateur Description
bidirectional_iteratorC++20 Spécifie un itérateur qui peut lire et écrire à la fois vers l’avant et vers l’arrière.
contiguous_iteratorC++20 Spécifie un itérateur dont les éléments sont séquentiels en mémoire, de même taille et accessibles à l’aide de l’arithmétique du pointeur.
forward_iteratorC++20 Spécifie un itérateur qui peut lire (et éventuellement écrire) plusieurs fois.
input_iteratorC++20 Spécifie un itérateur à partir duquel vous pouvez lire au moins une fois.
input_or_output_iteratorC++20 Base de la taxonomie du concept d’itérateur.
output_iterator Spécifie un itérateur dans lequel vous pouvez écrire.
random_access_iteratorC++20 Spécifie un itérateur que vous pouvez lire et écrire par index.
sentinel_forC++20 Spécifie une sentinelle pour un type d’itérateur.
sized_sentinel_forC++20 Spécifie qu’un itérateur et son sentinelle peuvent être soustraits (à l’aide -) pour trouver leur différence dans le temps constant.

Voir aussi

Informations de référence sur les fichiers d’en-tête
Sécurité des threads dans la bibliothèque C++ Standard
Informations de référence sur la bibliothèque standard C++