std::stable_partition — cppreference.com
De cppreference.com
<metanoindex/>
<tbody> </tbody>
| Déclaré dans l'en-tête <algorithm> |
||
|
|
||
Réordonne les éléments de la gamme [first, last) de telle manière que tous les éléments pour lesquels le prédicat renvoie p true précéder les éléments pour lesquels prédicat retourne p false. Ordre relatif des éléments est conservé .
Original:
Reorders the elements in the range [first, last) in such a way that all elements for which the predicate p returns true precede the elements for which predicate p returns false. Relative order of the elements is preserved.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Paramètres
| first, last | - | l'éventail d'éléments à réorganiser Original: the range of elements to reorder The text has been machine-translated via Google Translate. |
| p | - | prédicat unéaire qui retourne true si l'élément doit être commandé avant autres éléments Original: if the element should be ordered before other elements The text has been machine-translated via Google Translate. L'expression |
| Type requirements | ||
-BidirIt must meet the requirements of ValueSwappable and BidirectionalIterator.
| ||
-The type of dereferenced BidirIt must meet the requirements of MoveAssignable and MoveConstructible.
| ||
Retourne la valeur
Itérateur sur le premier élément du second groupe
Original:
Iterator to the first element of the second group
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Complexité
Exactement last-first applications du prédicat et à la plupart des swaps (last-first)*log(last-first) s'il n'y a pas assez de mémoire ou de nombre linéaire de swaps si la mémoire disponible est suffisante .
Original:
Exactly last-first applications of the predicate and at most (last-first)*log(last-first) swaps if there is insufficient memory or linear number of swaps if sufficient memory is available.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Exemple
#include <iostream> #include <algorithm> int main() { std::vector<int> v{0, 0, 3, 0, 2, 4, 5, 0, 7}; std::stable_partition(v.begin(), v.end(), [](int n){return n>0;}); for (int n : v) { std::cout << n << ' '; } std::cout << '\n'; }
Résultat :
Voir aussi
divise une série d'éléments en deux groupes Original: divides a range of elements into two groups The text has been machine-translated via Google Translate. (fonction générique) [edit] | |