Want to create interactive content? It’s easy in Genially!

Get started free

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:

Essential Learning Unit

Akihabara Learning Unit

Genial learning unit

History Learning Unit

Primary Unit Plan

Vibrant Learning Unit

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!

>