Bueno.
Entonces, digamos que queremos ordenar una matriz de Pair struct con dos enteros a y b . Y queremos ordenarlo usando solo una variable entera.
struct Pair {
int a;
int b;
};
Ahora podemos usar la función de ordenación proporcionada por STL, pero para que pueda clasificar los elementos, necesitamos decirle sobre qué base queremos que se ordene esa matriz. Para este propósito, necesitamos escribir nuestra propia función de comparación que le dice a la función de clasificación que de dos estructuras es más pequeña que otra.
Me gusta esto
- ¿De qué se trata el algoritmo Google Hawk?
- ¿Cómo se escriben los algoritmos de espacio?
- ¿Convertir el tamaño de matriz en un número primo ayuda en la implementación de la tabla hash? ¿Por qué?
- En la visión por computadora, ¿el aprendizaje automático va a hacer obsoletos los algoritmos de aprendizaje no automático?
- ¿Qué algoritmo se usa en WhatsApp?
bool compare (par p1, par p2) {
// devuelve verdadero si el primer argumento es menor que el segundo
// más devuelve falso
if (p1.a <p2.a) devuelve verdadero;
de lo contrario devuelve falso;
}
Esto también se puede escribir brevemente así
bool compare (par p1, par p2) {
devuelve p1.a <p2.a;
}
Ahora nuestra función de comparación está lista, así que solo tenemos que llamar a la función de clasificación con nuestra matriz de estructura y la función de comparación.
sort (pares, pares + n, comparar);
Aquí pares es nuestra matriz de estructuras, y n es el tamaño de esa matriz.
Recursos:
sort – Referencia de C ++
¡Feliz codificación! 🙂