J'ai un objet:appel carte :: trouver un argument const
map<A*, string> collection;
Je voudrais appeler la fonction carte :: trouver, mais la valeur que j'ai la clé est const, comme dans le le code ci-dessous, qui ne compile pas:
const A* a = whatever();
collection.find(a);
les travaux de code suivant et effectue l'équivalent de l'opération de recherche:
const A* a = whatever();
map<A*, string>::iterator iter;
for(iter = collection.begin(); iter != collection.end(); ++iter)
if(iter->first == a)
break;
// iter now contains the result or map::end (just like map::find)
Mais il n'est probablement pas aussi efficace que la fonction de recherche de membre, et il est également moche et masque l'intention du code.
Comment puis-je appeler la fonction de recherche?
Merci
Edit:
J'utilise intentionnellement un type de pointeur pour la clé sur la carte. Le comportement que je souhaite est que la carte utilise l'égalité de pointeur pour les clés. (Tout comme dans mon code de boucle)
Quelle erreur de compilation obtenez-vous? – JoshD