Je suis en train d'implémenter un jeu. J'ai une arborescence d'états et une file d'attente de priorité basée sur <> qui règle les états sur leurs coûts. Pour cela, je dois l'opérateur < mis en œuvre:Fonction de comparaison STL polymorphe (classe classe cmp, classe cmp int) pour le tri
struct DereferenceCompareState :
public std::binary_function<State*, State*, bool>
{
bool operator()(const State* lhs, const State* rhs) const
{
verbose6("comparing " << lhs->getCost() << " with " << rhs->getCost());
return lhs->getCost() < rhs->getCost();
}
};
Maintenant, je veux éliminer les états qui ont un coût plus élevé que certains nombre, mais pour cela, je dois créer un état factice avec le coût que je veux et faire un upper_bound sur l'ensemble. Existe-t-il un moyen de définir un opérateur qui travaille sur les comparaisons entre états et entiers en ajoutant par exemple à la structure ci-dessus? Merci
J'ai fini par définir une classe de base CostProvider qui peut être construite aussi avec un entier. Changé le type de set à CostProvider. Donc c'est rapide mais je ne sais pas comment c'est bon. Merci! – perreal