Cómo usar std :: sort para ordenar una matriz en C ++

Cómo usar la biblioteca de plantillas estándar std::sort() para ordenar una matriz declarada como int v[2000] ;

¿C ++ proporciona alguna función que pueda obtener el índice inicial y final de una matriz?

En C ++ 0x / 11 obtenemos std::begin y std::end que están sobrecargados para las matrices:

 #include  int main(){ int v[2000]; std::sort(std::begin(v), std::end(v)); } 

Si no tiene acceso a C ++ 0x, no es difícil escribirlos usted mismo:

 // for container with nested typedefs, non-const version template typename Cont::iterator begin(Cont& c){ return c.begin(); } template typename Cont::iterator end(Cont& c){ return c.end(); } // const version template typename Cont::const_iterator begin(Cont const& c){ return c.begin(); } template typename Cont::const_iterator end(Cont const& c){ return c.end(); } // overloads for C style arrays template T* begin(T (&arr)[N]){ return &arr[0]; } template T* end(T (&arr)[N]){ return arr + N; } 
 #include  static const size_t v_size = 2000; int v[v_size]; // Fill the array by values std::sort(v,v+v_size); 

En C ++ 11 :

 #include  #include  std::array v; // Fill the array by values std::sort(v.begin(),v.end()); 

Si no conoce el tamaño, puede usar:

 std::sort(v, v + sizeof v / sizeof v[0]); 

Incluso si conoce el tamaño, es una buena idea codificarlo de esta manera, ya que reducirá la posibilidad de un error si el tamaño de la matriz se cambia más tarde.

Puede ordenarlo std::sort(v, v + 2000)

 //It is working #include using namespace std; void main() { int a[5]; int temp=0; cout<<"Enter Values"<>a[i]; } for(int i=0;i<5;i++) { for(int j=0;j<5;j++) { if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } } cout<<"Asending Series"< 

puede usar sort () en C ++ STL. Función sort () Sintaxis:

  sort(array_name, array_name+size) So you use sort(v, v+2000); 

Clasificación C ++ utilizando la función de clasificación

 #include  using namespace std; vector  v[100]; int main() { sort(v.begin(), v.end()); } 

Es tan simple como eso … c ++ le proporciona una función incorporada en STL (biblioteca de plantillas estándar) llamada sort(arr_name ,arr_name+arr_size) que se ejecuta de 20% a 50% más rápido que el código codificado a mano -ordenar. También es mejor que incluya el archivo de encabezado

 #include 

Aquí está el código de muestra para su uso:

 #include #include using namespace std; main() { int n;cin>>n; int a[n]; for(int i=0;i>a[i]; sort(a,a+n); for(int i=0;i 

método de clasificación sin std::sort :

 // sorting myArray ascending int iTemp = 0; for (int i = 0; i < ARRAYSIZE; i++) { for (int j = i + 1; j <= ARRAYSIZE; j++) { // for descending sort change '<' with '>' if (myArray[j] < myArray[i]) { iTemp = myArray[i]; myArray[i] = myArray[j]; myArray[j] = iTemp; } } } 

Ejecutar ejemplo completo:

 #include  // std::cout, std::endl /* http://en.cppreference.com/w/cpp/header/iostream */ #include  // srand(), rand() /* http://en.cppreference.com/w/cpp/header/cstdlib */ #include  // time() /* http://en.cppreference.com/w/cpp/header/ctime */ int main() { const int ARRAYSIZE = 10; int myArray[ARRAYSIZE]; // populate myArray with random numbers from 1 to 1000 srand(time(0)); for (int i = 0; i < ARRAYSIZE; i++) { myArray[i] = rand()% 1000 + 1; } // print unsorted myArray std::cout << "unsorted myArray: " << std::endl; for (int i = 0; i < ARRAYSIZE; i++) { std::cout << "[" << i << "] -> " << myArray[i] << std::endl; } std::cout << std::endl; // sorting myArray ascending int iTemp = 0; for (int i = 0; i < ARRAYSIZE; i++) { for (int j = i + 1; j <= ARRAYSIZE; j++) { // for descending sort change '<' with '>' if (myArray[j] < myArray[i]) { iTemp = myArray[i]; myArray[i] = myArray[j]; myArray[j] = iTemp; } } } // print sorted myArray std::cout << "sorted myArray: " << std::endl; for (int i = 0; i < ARRAYSIZE; i++) { std::cout << "[" << i << "] -> " << myArray[i] << std::endl; } std::cout << std::endl; return 0; } 

Use la función C ++ std::sort :

 #include  using namespace std; int main() { vector v(2000); sort(v.begin(), v.end()); } 

puedes usar,

  std::sort(v.begin(),v.end());