A C + + Standard Template Library é cheio de funções úteis para lidar com dados , incluindo o algoritmo de ordenação . Infelizmente, se você usar o algoritmo de ordenação em uma matriz de strings , eles não vão sair em ordem alfabética. Em vez disso, o padrão é classificá-los em algo conhecido como ordem ASCIIbética - uma classificação com base na codificação interna das letras individuais . Para ordenar alfabeticamente , você deve fornecer uma função que diz o algoritmo de ordenação exatamente como comparar duas cordas da maneira que você quiser. Instruções
um
incluir todos os cabeçalhos necessários , adicionando as seguintes linhas para o início do seu programa: # include # include
2 Escreva uma função wrapper para a função lexographical_compare . A função sort () que você vai usar mais tarde requer a função de comparação para tirar duas strings como argumentos e retorna um bool , que não é como a função lexographical_compare funciona. Você pode declarar essa função como uma função global no namespace do seu projeto para permitir que ele seja usado a partir de qualquer parte do seu programa. Se você só precisa alfabetizar uma matriz dentro de uma classe , você poderá declará-la como um function.bool myCompare membro privado (string um , corda b ) { return lexographical_compare ( a.begin () , a.end () , b . begin () , b.end ()); }
3
classificar a matriz , usando o algoritmo de ordenação com a função de comparação que você escreveu apenas : sort ( myStringArray , myStringArray + myStringArrayCount , myCompare );