Bonjour
j'ai un petit probleme avec sort_stable
j'envie de passer un predicat a la fonction sort_stable mais je veux aussi qu'elle ignore la case
car j'ai des resultats du genre
A
B
a
B
quelqu-un a une idee?
merci
Bonjour
j'ai un petit probleme avec sort_stable
j'envie de passer un predicat a la fonction sort_stable mais je veux aussi qu'elle ignore la case
car j'ai des resultats du genre
A
B
a
B
quelqu-un a une idee?
merci
Ben, je dirais soumettre une fonction (enfin, sûrement un foncteur) de comparaison perso qui elle, ignore la casse...
Il n'y a rien de vraiment standard qui l'ignore, il me semble.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
je travaille avec VS2005, et j'ai ce resultat,
le probleme c'est que je donne comme troisieme argument une function
du genre
mais je ne vois vraiment pas comment faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 std::stable_sort(temp_indices.begin(), temp_indices.end(), SortByAttributeFunc(this, attr_index));
sinon dans l'une des implementation de stable_sort
j;ai vu qu'il y'avait un parametres du genre lt_nocase pour ignorer la case
http://www.sgi.com/tech/stl/stable_sort.html
bon j'ai trouve la reponse a mon probleme
le changement devait etre fait dans la fonction predicat
j'ai modifie cela
par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part case str::TYPE_STRING : return points_->getStringAt(attr_index_, a)<points_->getStringAt(attr_index_, b);
je crois que l'operateur < fait la meme chose de Compare, mais pas la meme chose que CompareNoCase
Code : Sélectionner tout - Visualiser dans une fenêtre à part case str::TYPE_STRING : return points_->getStringAt(attr_index_, a).CompareNoCase(points_->getStringAt(attr_index_, b))<0;
Partager