La carte STL est un conteneur C++ standard. Il utilise des clés uniques qui peuvent être comparées pour faire référence à des données de valeur stockées dans le conteneur. Cela fonctionne un peu comme un tableau mais contrairement à un tableau, la clé peut être n'importe quoi et n'a pas besoin d'être un nombre entier. La syntaxe d'une carte est:
std::map < Key, Data, Compare, Alloc>
Key - le type d'objet qui sera utilisé comme clé
données - le type d'objet qui sera utilisé en tant que données
Comparer - une fonction de comparaison pour la clés
Alloc - Le allocateur de la carte, utilisée pour toute la gestion de la mémoire interne
utilisation
:
map[Key] = Data
Pour lire plus sur les cartes STL regarder ici: http://en.wikipedia.org/wiki/Map_%28C%2B%2B%29 et ici: http://www.sgi.com/tech/stl/Map.html
Dans l'extrait de code, vous utilisez la fonction find() de la carte. Cette fonction renvoie un itérateur pointant vers l'élément de la carte contenant la clé que vous recherchiez. Si cette clé n'est pas trouvée, la fonction de recherche retournera l'itérateur pointant vers la fin de la carte. C'est ce qui est vérifié dans l'extrait de code que vous avez joint à votre question et si la fonction find a renvoyé la valeur de l'itérateur de fin, cela signifie que la clé n'est pas dans la map. Une optimisation pour votre code a été fournie par GMan dans son commentaire.
Une explication très simple pour un itérateur (bien que non complète) serait qu'un itérateur est un pointeur vers une paire < Clé, Données>.
Espérons que cela aide!
Toujours déconcerté par cela.Vous voyez sûrement comment votre article sera formaté parce que vous devez * défiler devant l'aperçu * pour le soumettre. Je peux à peine dire ce que la partie supérieure du code est censé être. – GManNickG
merci pour cela ~~ – ladyfafa