Vérification de l'existence d'une clé dans un std::map
Dans le domaine du C moderne, la structure de données std::map propose une implémentation sophistiquée d'un conteneur associatif ordonné. Lorsque vous travaillez avec des cartes, une tâche courante consiste à déterminer la présence d'une clé spécifique dans la collection.
Considérez l'extrait de code fourni :
typedef map<string,string>::iterator mi; map<string, string> m; m.insert(make_pair("f","++--")); pair<mi,mi> p = m.equal_range("f"); cout << p.first;
Le code tente de vérifier si la clé "f" existe dans la carte. Cependant, il utilise la méthode égal_range, qui peut ne pas correspondre à l'objectif visé. Pour vérifier efficacement l'existence d'une clé, une approche plus appropriée consiste à utiliser la méthode find en conjonction avec l'itérateur de fin :
if (m.find("f") == m.end()) { // Key "f" not found } else { // Key "f" found }
En utilisant la méthode find, vous pouvez récupérer un itérateur pointant vers l'élément avec l'élément spécifié. clé. Si la clé n'existe pas, l'itérateur renvoyé sera équivalent à l'itérateur de fin de la carte. Ce mécanisme simple mais efficace vous permet de déterminer sans effort la présence ou l'absence d'une clé dans un std::map.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!