This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
in204:tds:sujets:td4:part1 [2020/09/30 06:42] bmonsuez |
in204:tds:sujets:td4:part1 [2022/11/18 10:49] (current) |
||
---|---|---|---|
Line 29: | Line 29: | ||
<hidden Correction> | <hidden Correction> | ||
- | <nodisp 2> | ||
Dans la fonction précédente, nous souhaitons remplacer le type ''std::vector<T>'' par des itérateurs délimitant la séquence d'éléments. | Dans la fonction précédente, nous souhaitons remplacer le type ''std::vector<T>'' par des itérateurs délimitant la séquence d'éléments. | ||
Line 74: | Line 73: | ||
} | } | ||
</code> | </code> | ||
- | </nodisp> | ||
</hidden> | </hidden> | ||
Line 92: | Line 90: | ||
</code> | </code> | ||
<hidden Explication & correction> | <hidden Explication & correction> | ||
- | <nodisp 2> | + | |
<code cpp> | <code cpp> | ||
Line 233: | Line 231: | ||
Comme la version spécialisée est prioritaire sur la version générique, si l'itérateur définit ''iterator_category'' comme étant [[https://en.cppreference.com/w/cpp/iterator/iterator_tags|std::random_access_iterator_tag]], c'est la version spécialisée de la fonction qui sera appelé, sinon la version générique, ce qui permet d'avoir recours à la méthode optimale pour calculer la distance. | Comme la version spécialisée est prioritaire sur la version générique, si l'itérateur définit ''iterator_category'' comme étant [[https://en.cppreference.com/w/cpp/iterator/iterator_tags|std::random_access_iterator_tag]], c'est la version spécialisée de la fonction qui sera appelé, sinon la version générique, ce qui permet d'avoir recours à la méthode optimale pour calculer la distance. | ||
- | </nodisp> | ||
</hidden> | </hidden> | ||
Line 267: | Line 264: | ||
<hidden Correction> | <hidden Correction> | ||
- | <nodisp 2> | ||
Les fonctions [[https://en.cppreference.com/w/cpp/algorithm/sort|sort]] et [[https://en.cppreference.com/w/cpp/algorithm/sort_heap|sort_heap]] prennent en argument deux itérateurs dénotant une séquence, le premier itérateur faisant référence au premier élément de la séquence et le deuxième itérateur fait référence à l'itérateur correspondant au marqueur de fin de séquence. | Les fonctions [[https://en.cppreference.com/w/cpp/algorithm/sort|sort]] et [[https://en.cppreference.com/w/cpp/algorithm/sort_heap|sort_heap]] prennent en argument deux itérateurs dénotant une séquence, le premier itérateur faisant référence au premier élément de la séquence et le deuxième itérateur fait référence à l'itérateur correspondant au marqueur de fin de séquence. | ||
Line 293: | Line 289: | ||
using namespace std; | using namespace std; | ||
- | int testSortAndUpper() | + | void testSortAndUpper() |
{ | { | ||
+ | std::vector<int> v{ 10, 20, 30, 30, 20, 10, 10, 20 }; | ||
// Appel de la fonction "upper' sur le vecteur en commençant par le premier élément | // Appel de la fonction "upper' sur le vecteur en commençant par le premier élément | ||
// et en terminant avec le dernier. | // et en terminant avec le dernier. | ||
Line 310: | Line 307: | ||
- | int testSortHeapAndUpper() | + | void testSortHeapAndUpper() |
{ | { | ||
+ | std::vector<int> v{ 10, 20, 30, 30, 20, 10, 10, 20 }; | ||
+ | std::make_heap(v.begin(), v.end()); | ||
// Appel de la fonction "upper' sur le vecteur en commençant par le premier élément | // Appel de la fonction "upper' sur le vecteur en commençant par le premier élément | ||
// et en terminant avec le dernier. | // et en terminant avec le dernier. | ||
Line 333: | Line 332: | ||
} | } | ||
</code> | </code> | ||
- | </nodisp> | ||
</hidden> | </hidden> |