The C + + Standard Template Library está lleno de funciones útiles para el tratamiento de datos , incluyendo el algoritmo de ordenación . Por desgracia , si se utiliza el algoritmo de ordenación en una matriz de cadenas , no van a salir en orden alfabético . En cambio, el valor predeterminado es ordenarlos en algo que se conoce como orden ASCIIbetical - una clasificación basada en la codificación interna de las letras individuales. Para ordenar alfabéticamente, usted debe proporcionar una función que indica al algoritmo de ordenación exactamente cómo comparar dos cadenas en la forma que desee . Instrucciones
1
Incluir todos los encabezados necesarios añadiendo las siguientes líneas al principio del programa : # include # include
2 Escribir una función de contenedor para la función lexographical_compare . La función sort () que va a utilizar más adelante requiere la función de comparación para tomar dos cadenas como argumentos y devuelve un bool , que no es cómo funciona la función lexographical_compare . Puede declarar esta función como una función global del espacio de nombres de su proyecto para que pueda ser usado desde cualquier parte de su programa. Si sólo necesita para alfabetizar una matriz dentro de una clase , es posible que desee declarar como un miembro privado function.bool myCompare ( String , String b ) {return lexographical_compare ( a.begin (), a.end (), b . begin () , b.end ()) ;}
3
Ordenar el array utilizando el algoritmo de ordenación de la función de comparación que acaba de escribir : sort ( myStringArray , myStringArray + myStringArrayCount , myCompare ) ;