Requisitos previos: std::ordenar en C++ , vectores en C++ , inicializar un vector en C++ .
CPP
ordenar una lista de matrices java
// C++ program to sort a vector in non-decreasing> // order.> #include> using> namespace> std;> > int> main()> {> > vector<> int> >v{1, 5, 8, 9, 6, 7, 3, 4, 2, 0};> > > sort(v.begin(), v.end());> > > cout <<> 'Sorted
'> ;> > for> (> auto> x : v)> > cout << x <<> ' '> ;> > > return> 0;> }> |
>
>Producción
Sorted 0 1 2 3 4 5 6 7 8 9>
¿Cómo ordenar en orden descendente?
sort() toma un tercer parámetro que se utiliza para especificar el orden en el que se ordenarán los elementos. Podemos pasar la función mayor() para ordenar en orden descendente. Esta función hace la comparación de una manera que antepone elementos mayores.
CPP
// C++ program to sort a vector in non-increasing> // order.> #include> using> namespace> std;> > int> main()> {> > vector<> int> >v{1, 5, 8, 9, 6, 7, 3, 4, 2, 0};> > > sort(v.begin(), v.end(), greater<> int> >());> > > cout <<> 'Sorted
'> ;> > for> (> auto> x : v)> > cout << x <<> ' '> ;> > > return> 0;> }> |
>
cadena comparable
>Producción
Sorted 9 8 7 6 5 4 3 2 1 0>
¿Cómo ordenar en un ¿orden particular?
También podemos escribir nuestra propia función de comparación y pasarla como tercer parámetro.
La función de comparación comprueba si la declaración devuelta es verdadera o falsa y devuelve un valor bool que se pasa a la función de clasificación.
Por ejemplo, digamos Intervalo i1 = {6, 8} e Intervalo i2 = {1, 9}. Cuando esto se pasa a la función comparador, compara i1.inicio y i2.inicio . Desde entonces, i1.start (=6)
CPP
controlador web
// A C++ program to sort vector using> // our own comparator> #include> using> namespace> std;> > // An interval has start time and end time> struct> Interval {> > int> start, end;> };> > // Compares two intervals according to starting times.> bool> compareInterval(Interval i1, Interval i2)> {> > return> (i1.start } int main() { vector v { { 6, 8 }, { 1, 9 }, { 2, 4 }, { 4, 7 } }; // sort the intervals in increasing order of // start time sort(v.begin(), v.end(), compareInterval); cout << 'Intervals sorted by start time :
'; for (auto x : v) cout << '[' << x.start << ', ' << x.end << '] '; return 0; }> |
>
>Producción
Intervals sorted by start time : [1, 9] [2, 4] [4, 7] [6, 8]>
¿Cómo ordenar la matriz en orden descendente según algún parámetro usando una función de comparación?
Se puede pasar una función de comparación de tal manera que los elementos de la matriz se ordenen en orden descendente.
C++
si declaración java
// A C++ program to sort vector using> // our own comparator> #include> using> namespace> std;> > // An interval has start time and end time> struct> Interval {> > int> start, end;> };> > // Compares two intervals according to ending times in descending order.> bool> compareInterval(Interval i1, Interval i2)> {> > return> (i1.end>i2.end);> }> > int> main()> {> > vector v { { 6, 8 }, { 1, 9 }, { 2, 4 }, { 4, 7 } };> > > // sort the intervals in decreasing order of> > // end time> > sort(v.begin(), v.end(), compareInterval);> > > cout <<> 'Intervals sorted by ending time in descending order :
'> ;> > for> (> auto> x : v)> > cout <<> '['> << x.start <<> ', '> << x.end <<> '] '> ;> > > return> 0;> }> |
>
>Producción
Intervals sorted by ending time in descending order : [1, 9] [6, 8] [4, 7] [2, 4]>
Artículos relacionados :
Ordenar un vector de pares | Serie 1
Ordenar un vector de pares | Conjunto 2