Come usare std :: sort per ordinare una matrice in C ++

Come utilizzare la libreria standard di template std::sort() per ordinare una matrice dichiarata come int v[2000] ;

Il C ++ fornisce una funzione che può ottenere l’indice iniziale e finale di un array?

In C ++ 0x / 11 otteniamo std::begin e std::end che sono sovraccaricati per gli array:

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

Se non hai accesso a C ++ 0x, non è difficile scrivere da soli:

 // 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); 

In C ++ 11 :

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

Se non conosci la dimensione, puoi usare:

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

Anche se conosci la dimensione, è una buona idea codificarla in questo modo poiché ridurrà la possibilità di un bug se la dimensione dell’array viene modificata in seguito.

Puoi ordinarlo 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"< 

puoi usare sort () in C ++ STL. funzione sort () Sintassi:

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

Ordinamento C ++ utilizzando la funzione di ordinamento

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

È così semplice … c ++ ti fornisce una funzione incorporata in STL (Standard Template Library) chiamata sort(arr_name ,arr_name+arr_size) che viene eseguito dal 20% al 50% più veloce rispetto al veloce codificato a mano -ordinare. Inoltre è meglio includere il file di intestazione

 #include 

Ecco il codice di esempio per il suo utilizzo:

 #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 

metodo di ordinamento senza 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; } } } 

Esegui un esempio 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; } 

Usa la funzione std::sort C ++:

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

Puoi usare,

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