Previous fileTop of DocumentContentsIndex pageNext file
Apache C++ Standard Library Reference Guide


Library:  Algorithms


Local Index

No Entries


Generic algorithm for sorting collections of entities


#include <algorithm>

namespace std {
  template <class RandomAccessIterator>
  void stable_sort(RandomAccessIterator start, 
                   RandomAccessIterator finish);

  template <class RandomAccessIterator, class Compare>
  void stable_sort(RandomAccessIterator start,
                   RandomAccessIterator finish, Compare comp);


The stable_sort() algorithm sorts the elements in the range [start, finish) in ascending order. The first version of the algorithm uses operator<() for the sort. The second version uses the function object comp.

The stable_sort() algorithm is considered stable because the relative order of equivalent elements is maintained.


stable_sort() does approximately N * (log(N))2 comparisons, where N equals finish - start. The algorithm calls std::get_temporary_buffer<>() to obtain extra memory. If enough extra memory is available, it does at most N * log(N) comparisons (i.e., the same as sort()).


See Also

sort(), partial_sort(), partial_sort_copy(), get_temporary_buffer()

Standards Conformance

ISO/IEC 14882:1998 -- International Standard for Information Systems -- Programming Language C++, Section

Previous fileTop of DocumentContentsIndex pageNext file