Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés
Se recomienda usar Visual Studio 2017

ordenar

 

Organiza los elementos en un intervalo especificado en nondescending petición o según un criterio de ordenación especificado por un predicado binario.

template<class RandomAccessIterator>
   void sort(
      RandomAccessIterator first, 
      RandomAccessIterator last
   );
template<class RandomAccessIterator, class Predicate>
   void sort(
      RandomAccessIterator first, 
      RandomAccessIterator last, 
      Predicate comp
   );

first

Un iterador de acceso aleatorio que dirige la posición del primer elemento del intervalo que se ordenen.

last

Un iterador de acceso aleatorio que dirige la posición una más allá del último elemento en el intervalo que se ordenen.

comp

Objeto definido por el usuario de la función de predicado que define el criterio de comparación que se completará por los elementos sucesivos del orden.  Este predicado binario toma dos argumentos y devuelve true si los dos argumentos están en orden y false de otra manera.  Esta función de comparador debe imponer orden débil estricta a pares de elementos de la secuencia.  Para obtener más información, vea Algoritmos.  

El intervalo hace referencia debe ser válido; todos los punteros deben ser dereferenceable y dentro de la secuencia la posición última es accesible de primera por el aumento.

Los elementos son equivalentes, pero son iguales no necesariamente, si hay alguno es menor que otro.  El algoritmo de sort no es estable y por ello no garantiza que el orden relativo de elementos equivalentes se conservará.  El algoritmo stable_sort conserva esta clasificación original.  

El promedio de una complejidad de ordenación es O(n log N), donde n = último – primero.

Ejemplo

// alg_sort.cpp
// compile with: /EHsc
#include <vector>
#include <algorithm>
#include <functional>      // For greater<int>( )
#include <iostream>

// Return whether first element is greater than the second
bool UDgreater ( int elem1, int elem2 )
{
   return elem1 > elem2;
}

int main( )
{
   using namespace std;
   vector <int> v1;
   vector <int>::iterator Iter1;

   int i;
   for ( i = 0 ; i <= 5 ; i++ )
   {
      v1.push_back( 2 * i );
   }

   int ii;
   for ( ii = 0 ; ii <= 5 ; ii++ )
   {
      v1.push_back( 2 * ii + 1 );
   }

   cout << "Original vector v1 = ( " ;
   for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
      cout << *Iter1 << " ";
   cout << ")" << endl;

   sort( v1.begin( ), v1.end( ) );
   cout << "Sorted vector v1 = ( " ;
   for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
      cout << *Iter1 << " ";
   cout << ")" << endl;

   // To sort in descending order. specify binary predicate
   sort( v1.begin( ), v1.end( ), greater<int>( ) );
   cout << "Resorted (greater) vector v1 = ( " ;
   for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
      cout << *Iter1 << " ";
   cout << ")" << endl;

   // A user-defined (UD) binary predicate can also be used
   sort( v1.begin( ), v1.end( ), UDgreater );
   cout << "Resorted (UDgreater) vector v1 = ( " ;
   for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
      cout << *Iter1 << " ";
   cout << ")" << endl;
}
          Vector original v1 = (0 2 4 6 8 10 1 3 5 7 9 11)
Vector ordenados v1 = (0 1 2 3 4 5 6 7 8 9 10 11)
(Mayor) vector recurrido v1 = (11 10 9 8 7 6 5 4 3 2 1 0)
Vector recurrido (de UDgreater) v1 = (11 10 9 8 7 6 5 4 3 2 1 0)

Requisitos

Encabezado: <algorithm>

Espacio de nombres: std

Mostrar: