<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 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++.
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_iterator C++20 |
Spécifie un itérateur qui peut lire et écrire à la fois vers l’avant et vers l’arrière. |
contiguous_iterator C++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_iterator C++20 |
Spécifie un itérateur qui peut lire (et éventuellement écrire) plusieurs fois. |
input_iterator C++20 |
Spécifie un itérateur à partir duquel vous pouvez lire au moins une fois. |
input_or_output_iterator C++20 |
Base de la taxonomie du concept d’itérateur. |
output_iterator |
Spécifie un itérateur dans lequel vous pouvez écrire. |
random_access_iterator C++20 |
Spécifie un itérateur que vous pouvez lire et écrire par index. |
sentinel_for C++20 |
Spécifie une sentinelle pour un type d’itérateur. |
sized_sentinel_for C++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++