Skip to content
Snippets Groups Projects
Commit dfe92f65 authored by Michaël El Kharroubi's avatar Michaël El Kharroubi :satellite:
Browse files

Iterator done

parent ed6f0d1f
Branches
No related tags found
No related merge requests found
......@@ -34,4 +34,6 @@
#new-section-slide("Le futur avec C++23 (views et mdspans)")
#new-section-slide("Notions à retenir")
#new-section-slide("Questions ?")
\ No newline at end of file
......@@ -18,12 +18,72 @@
#new-section-slide("Introduction")
#slide(title: "Contenu")[
#slide(
title: "Contenu",
)[
Nous allons voir succinctement quels sont les outils de C++ indispensables pour
pouvoir utiliser la parallélisation sur GPU avec les algorithmes STL.
]
#new-section-slide("Itérateurs")
#slide(
title: "Qu'est-ce qu'un itérateur en C++",
)[
Le concept n'est pas strictement similaire au design pattern itérateur.
Les itérateurs en C++ sont des objets qui permettent de parcourir une
collection.
La collection peut-être virtuelle ou il peut s'agir d'une zone mémoire contigüe.
On peut également concevoir l'itérateur comme une généralisation du pointeur en
C++.
]
#slide(title: "Les types d'itérateurs")[
Il existe plusieurs types d'itérateurs en C++
#set align(center + horizon)
#rect(inset: 8pt)[
Contiguous (C++ 20)
#rect(inset: 8pt)[
Random access
#rect(inset: 8pt)[
Bidirectional
#rect(inset: 8pt, width: 25%, height: 50%)[
Forward
#rect(inset: 8pt)[
Input
]
#rect(inset: 8pt)[
Output
]
]
]
]
]
]
#slide(
title: "Comment utiliser un itérateur",
)[
Toutes les collections de la STL proposent une méthode `begin` et `end`. Elles
permettent d'obtenir un itérateur sur le début et la fin de la collection.
L'itérateur le plus basique peut être incrémenté `it++` ou `++it`.
L'itérateur bidirectionnel peut aussi être décrémenté `it--` ou `--it`
Selon le type d'itérateur, il est également possible de le déréférencer `*it`.
S'il est possible d'y accèder aléatoirement, on peut utiliser l'opérateur
`it[i]` pour accèder au ième élément.
Je vous recommande de lire cette page pour plus d'exemples :
#link("https://cplusplus.com/reference/iterator")
]
#new-section-slide("Vecteurs")
#new-section-slide("Tableaux et Spans")
......@@ -32,4 +92,6 @@
#new-section-slide("Algorithmes STL")
#new-section-slide("Notions à retenir")
#new-section-slide("Questions ?")
\ No newline at end of file
......@@ -45,7 +45,7 @@
+ Les itérateurs C++
+ Les vecteurs, les tableaux et les spans
+ Les captures
+ Les algorithmes STL #pause
+ Les algorithmes de la Standard Template Library (STL) #pause
+ Présentation du kit HPC Nvidia
+ Le compilateur nvc++
+ Comment paralléliser son code avec nvc++
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment