logo

Ordenar un vector en C++

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) FALSO . Esto significa que el intervalo i1 no debe colocarse antes del intervalo i2. A continuación se muestra el código para esta función.

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