Non - au moins probablement pas. Tout d'abord, std::string
n'a pas sort
en tant que fonction membre, donc vous utiliserez probablement std::sort
à la place. Deuxièmement, vous ne pouvez pas passer un std::string
à strcmp
. Vous pouvez utiliser la fonction membre c_str
ou simplement comparer les chaînes directement à l'aide d'opérateurs normaux (bien que cela ne donne qu'une comparaison bidirectionnelle, pas le résultat à trois voies de strcmp
). Troisièmement, votre code semble dépendre de l'héritage (ou de l'extension) de la classe de chaînes standard, ce qui est rarement une bonne idée.
bool compareTo2(std::string a, std::string b) {
std::sort(a.begin(), a.end());
std::sort(b.begin(), b.end());
return a < b;
}
Édition: Notez que cela prend l'étape légèrement inhabituelle de passer les chaînes par valeur. Nous avons besoin d'une copie de la chaîne d'origine pour que nous puissions la trier sans modifier l'original de toute façon, donc je viens de passer en valeur pour obtenir une copie, puis j'ai trié la copie reçue en paramètre.
La meilleure façon de savoir: « Est-ce que je vous écris correctement » de type, essayez de le compiler, essayer de l'exécuter ;-) – ChrisJ
- "Non." - C'était facile. Et après? – sellibitze
@sellibitze, c'était condescendant .... et ne pas aider –