std::stable_sort
From Cppreference
|  Defined in header  <algorithm> | ||
| template< class RandomAccessIterator > void stable_sort( RandomAccessIterator first, RandomAccessIterator last ); | (1) | |
| template< class RandomAccessIterator, class Compare > void stable_sort( RandomAccessIterator first, RandomAccessIterator last, Compare comp ); | (2) | |
Sorts the elements in the range [first, last) in ascending order. The order of equal elements is guaranteed to be preserved. The first version uses operator< to compare the elements, the second version uses the given comparison function comp.
| Contents | 
Parameters
| first, last | - | the range of elements to sort | |||||||||
| comp | - | comparison function which returns true if the first argument is less than the second. The signature of the comparison function should be equivalent to the following: 
 The signature does not need to have const &, but the function must not modify the objects passed to it.  | |||||||||
Return value
(none)
Example
| This section is incomplete | 
Complexity
O(N*log2(N)), where N = std::distance(first, last) applications of cmp. If additional memory is available, then the complexity is O(N*log(N)
See also
| 
 | sorts the first N elements of a range (function template) | |
| 
 | sorts a range into ascending order (function template) | |
