User Tools

Site Tools


in204:tds:sujets:td4:part1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
in204:tds:sujets:td4:part1 [2019/10/15 13:33]
bmonsuez [Question n°1.2]
in204:tds:sujets:td4:part1 [2022/11/18 10:49] (current)
Line 90: Line 90:
 </​code>​ </​code>​
 <hidden Explication & correction>​ <hidden Explication & correction>​
 +
  
 <code cpp> <code cpp>
Line 221: Line 222:
     typename std::​iterator_traits<​inputIterator>::​difference_type     typename std::​iterator_traits<​inputIterator>::​difference_type
         distance(inputIterator first, inputIterator last, iteratorTag)         distance(inputIterator first, inputIterator last, iteratorTag)
-</​code>​\\ Cette fonction est la fonction générique qui fonctionne pour l'​intégralité des différents type d'​itérateurs ''​iteratorTag''​.+</​code>​Cette fonction est la fonction générique qui fonctionne pour l'​intégralité des différents type d'​itérateurs ''​iteratorTag''​.
   * <code cpp>   * <code cpp>
     template<​class inputIterator>​     template<​class inputIterator>​
     typename std::​iterator_traits<​inputIterator>::​difference_type     typename std::​iterator_traits<​inputIterator>::​difference_type
         distance(inputIterator first, inputIterator last, std::​random_access_iterator_tag)         distance(inputIterator first, inputIterator last, std::​random_access_iterator_tag)
-</​code>​\\ Cette fonction est la version spécialisée pour le type ''​iteratorTag''​ qui doit être égal à [[https://​en.cppreference.com/​w/​cpp/​iterator/​iterator_tags|std::​random_access_iterator_tag]].+</​code>​Cette fonction est la version spécialisée pour le type ''​iteratorTag''​ qui doit être égal à [[https://​en.cppreference.com/​w/​cpp/​iterator/​iterator_tags|std::​random_access_iterator_tag]].
    
 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.
Line 288: 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 305: 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.
in204/tds/sujets/td4/part1.1571146402.txt.gz · Last modified: 2019/10/15 13:33 by bmonsuez