std::qsort
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header <cstdlib>
   | 
||
|   void qsort( const void *ptr, size_t count, size_t size, int (*comp)(const void *, const void *) );  | 
||
Sorts the given array pointed to by ptr in ascending order. The array contains count elements of size size. Function pointed to by comp is used for object comparison.
Contents | 
[edit] Parameters
| ptr | - | pointer to the array to sort | |||||||||
| count | - | number of element in the array | |||||||||
| size | - | size of each element in the array in bytes | |||||||||
| comp | - |   comparison function which returns a negative integer value if the first argument is less than the second,  a positive integer value if the first argument is greater than the second and zero if the arguments are equal. 
 The function must not modify the objects passed to it.   | |||||||||
[edit] Return value
(none)
[edit] Notes
The type of the elements of the array must be a trivial type, otherwise the behavior is undefined.
[edit] Example
The following code sorts an array of integers using qsort().
#include <iostream> #include <cstdlib> int compare_ints(const void* a, const void* b) // comparison function { int* arg1 = (int*) a; int* arg2 = (int*) b; if (*arg1 < *arg2) return -1; else if (*arg1 == *arg2) return 0; else return 1; } int main() { int a[] = { -2, 99, 0, -743, 2, 3, 4 }; int size = 7; std::qsort(a, size, sizeof(int), compare_ints); for (int i = 0; i < size; i++) { std::cout << a[i] << " "; } std::cout << '\n'; }
Output:
-743 -2 0 2 3 4 99
[edit] See also
|    searches an array for an element of unspecified type  (function)  | |
|    sorts a range into ascending order   (function template)  | |
|    (C++11)  | 
   checks if a type is trivial   (class template)  | 
|   C documentation for qsort 
 | |