Want to create interactive content? It’s easy in Genially!
Module de formation codé
Houyem Aloui
Created on December 1, 2023
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Essential Learning Unit
View
Akihabara Learning Unit
View
Genial learning unit
View
History Learning Unit
View
Primary Unit Plan
View
Vibrant Learning Unit
View
Art learning unit
Transcript
Houyem ALOUI>Hadil CHNITI> 2AGE3>
République Tunisienne Ministère de l’Enseignement Supérieur et de la Recherche Scientifique Université de Tunis El Manar École Nationale d’Ingénieurs de Tunis Département génie électrique
<Les itérateurs
<HOUYEM ALOUI <HADIL CHNITI <2AGE3>
commencer>
>
>
00
01
02
Introduction générale
Les différentes opérations
Les Catégories
03
04
Conclusion
Quiz
<00> INtroduction générale
commencer>
>
>
// Définition des itérateurs
- Des objets ressemblant à des pointeurs sur les éléments des conteneurs.
- Permettant de parcourir les conteneurs.
- Indifférents au type de conteneur.
>
>
// Itérateurs valides et invalides
- Un itérateur qui pointe sur un élément est dit valide.
- Un itérateur peut être invalide pour les raisons suivantes :
- Il n'a pas été initialisé
- Le conteneur a été redimensionné
- Le conteneur a été détruit
- L'itérateur pointe sur la fin de la séquence (V1.end())
<01> Les Catégories
commencer>
START >
<Les Catégories>
- Itérateur d'entrée
- Itérateur de sortie
- Itérateur avant
- Itérateur bidirectionnel
- Itérateur à accès aléatoire
- Itérateur constant
- Itérateur inverse
>
>
//Itérateur d'entrée(INput)
Objet de lecture seule
opérations:
1. égalité j = i 2. Incrémentation ++i ou i++ 3. Test d'égalité i == j 4. Déréférencement, en lecture seule A = *i
NB: Il est impossible de faire *i = A avec cet itérateur
Le code A = *i; B = *i ne marche pas
>
>
//Itérateur de sortie(output)
Objet d'écriture seule
opérations:
Il est impossible de faire A = *i avec cet itérateur
1. égalité j = i 2. Incrémentation ++i ou i++ 3. Déréférencement, en écriture seule *i = A
Le code *i = A; *i = B ne marche pas
>
>
//Itérateur bidirectionnel
//Itérateur avant (forward)
Tout ce qui est permis par l'itérateur avant +
lire ou écrire
Décrémentation --i ou i--
- Direction Unidirectionnelle
- Opérations d'Entrée et de Sortie
- Déréférencement Illimité
Partout où un itérateur input ou output ou Forward est requis, on peut fournir un itérateur Bidirectionnel.
Partout où un itérateur d'entrée ou de sortie est nécessaire, on peut utiliser un itérateur de type Forward .
10
>
>
//Itérateur à accès aléatoire (Random)
opérations:
NB:
- Partout où un itérateur Input ou Output, Forward ou Bidirectionnel est requis, on peut fournir un itérateur random .
Tout ce qui est permis par l'itérateur Bidirectionnel +
1. Opérateur d'indexation i[3] 2. Ajout ou suppression d'entiers j=i+3; j=i-4; i +=2; 3. Opérateur - : la différence entre deux itérateurs random est un entier
- Un itérateur random offre les mêmes possibilités qu'un pointeur conventionnel.
11
>
>
Ce code tente de modifier un élément du vecteur Généreration d'une erreur de compilation. IL faut utiliser un itérateur constant pour éviter cette erreur.
//Itérateur constant (const)-1-
12
>
>
//Itérateur constant (const) -2-
Résultat d'exécution
13
>
>
// Itérateur inverse (appelé reverse_iterator)
opérateurs -- et - => se déplacer vers l'avant opérateurs ++ et + => se déplacer vers l'arrière
!=
opérateurs ++ et + => se déplacer vers l'avantopérateurs −− et − => se déplacer vers l'arrière
Itérateur régulier (appelé iterator)
14
>
>
15
<02> Les différentes opérations
START >
16
Les différentes opérations
>
>
// iterator begin(), const_iterator begin() (tous)
Itérateur sur le premier élément
// iterator end(), const_iterator end() (tous)
Retourne un itérateur qui pointe après le dernier élément.
// iterator insert(iterator p,const value_type & x) (vector,list,deque)
Insère x avant p et retourne un itérateur pointant sur x
17
Les différentes opérations
>
>
// iterator erase(iterator p) (vector,deque,list) void erase(iterator p) (map,set)
Supprime l'élément sur lequel pointe p. conteneur séquentiel -> renvoie un iterateur pointant sur le successeur immédiat de l'élément détruit
// iterator erase(iterator first, iterator last)(vector,deque,list) void erase(iterator first, iterator last) (map,set)
Supprime tous les éléments de l'intervalle semi-ouvert [first,last[.
18
<04> Conclusion
START >
19
>
>
conclusion
Facilitation de la Conception Modulaire
Fondamental pour la Manipulation des Données
Compétence Clé dans le Développement C++
Illustration par des Exemples Pratiques
20
<
>
<QUIZ
start>
question 1/5
Qu'est-ce qu'un itérateur en C++ ?
a- Un pointeur sur une fonction
c-Une variable constante
b- Un objet permettant de parcourir séquentiellement les éléments d'une collection
CORRECT!
>
question 2/5
Comment obtenez-vous l'itérateur pointant vers le début d'un conteneur en C++ ?
A. first()
B. begin()
C. start()
CORRECT!
>
question 3/5
Quelle fonction retourne un itérateur pointant après la fin d'une séquence en C++ ?
A. finish()
B. last()
C. end()
CORRECT!
>
question 4 / 5
Comment accédez-vous à la valeur pointée par un itérateur en C++ ?
A. it.value
B. *it
C. it->data
CORRECT!
>
question 5/ 5
Comment déclarez-vous une variable avec un type automatiquement déduit par le compilateur en C++ ?
A. dynamic
B. var
C. auto
¡correct!
>
>
<Bibliographie>
geeksforgeeks.org/iterators-c-stl/amp/?fbclid=IwAR1q5Oj0xUxqDwT-nNWJvl1I-dHANMs2x4TRjyKbvUET6aMWMYdO2rhMqQ4
Cours C++ - Emmanuel Courcelle / CUTIS / Formation permanente du C.N.R.S. - Janvier 2013 -par Emmanuel Courcelle-toulouse.inra.fr
developpement-informatique.com/article/492/les-iterateurs-en-c++---definition--declaration-et-exemples?fbclid=IwAR2zmjdlP8ngLRCtflxAexV5P8eOlEJYk0j2bix9YnVHgQrSKbYOU4op_TI
simplilearn.com/tutorials/cpp-tutorial/iterators-in-cpp?fbclid=IwAR2bHRPK52C4HzDOcLRju3ebI_DTmRZjdDqRNueu0Qs-bmTsyaotvlXFLjs
home.csulb.edu/~pnguyen/cecs282/lecnotes/iterators.pdffbclid=IwAR3xkd6GChhWOnJJEJMhjwJDqbFSeAoP2jzH0JoVXJajgxLghxp3m1wUEk8
Merci de votre attention
¡Oh, no!
>