Dois-je utiliser
std::sort(numbers.begin(), numbers.end(), std::greater<int>());
o
std::sort(numbers.rbegin(), numbers.rend()); // note: reverse iterators
pour trier un vecteur dans l'ordre décroissant ? Y a-t-il des avantages ou des inconvénients à l'une ou l'autre de ces approches ?
4 votes
+1 Je pense que la réponse est évidente, mais cette question comporte une partie intéressante de trivium :)
5 votes
Je voterais pour la première option, juste parce qu'ainsi je n'aurais jamais à faire face à
reverse_iterator
's.4 votes
@wilhelmtell Une question de débutant mais pourquoi le deuxième trierait-il par ordre décroissant ? Nous donnons le même tableau comme entrée à la méthode de tri. C'est juste que nous le donnons dans l'ordre inverse, alors pourquoi devrait-il être trié par ordre décroissant et non croissant comme ce serait le cas avec ar.begin() et ar.end.
15 votes
@shshnk
std::sort(b, e);
met le minimum àb
(dans notre casrbegin
donc le dernier ) et le maximum àe
(dans notre casrend
donc le premièrement élément).0 votes
Cela répond-il à votre question ? Tri des éléments du vecteur par ordre décroissant