Recherche de carte C ++

Recherche de carte C ++
«Le conteneur d'association connu sous le nom de carte permet de stocker des éléments en C ++ qui résultent de l'interaction d'une paire de valeurs clés et de données cartographiées dans une séquence particulière. Les clés pertinentes dans un conteneur de carte sont toujours utilisées pour organiser correctement les informations. En utilisant ses clés spécifiques, les valeurs d'un conteneur de carte peuvent être récupérées. Pour récupérer les données du conteneur, nous avons utilisé la fonction Map :: Search (), qui apparaît dans le fichier d'en-tête .

Map :: search () est une fonction intégrée en C ++ STL (bibliothèque de modèles standard) qui fournit un itérateur ou un itérateur statique qui pointe vers l'emplacement de la carte dans laquelle la clé est située. Il produit un itérateur ou un itérateur statique qui fait référence à la carte; Si la clé n'est pas disponible dans le conteneur, alors carte.La fonction end () est appelée."

Avantages de Map :: Search () Fonction en C++

Les avantages de l'objet STD :: Map incluent une recherche rapide, une inclusion et la suppression des actions qui peuvent être effectuées en temps logarithmique. Le composant Find, qui reçoit une référence à une clé, propose la fonction de recherche. L'itérateur du composant pertinent est produit si la touche spécifiée peut être située dans l'objet MAP STD ::. L'itérateur précédent (map :: end ()) est donné si, du contraire, la clé fournie n'est pas située dans le conteneur.

Syntaxe de Map :: Search () Fonction en C++

Voici la syntaxe de Map :: Search () Fonction en C++.

"OU"

Paramètres dans map :: Search () Fonction en c++

La spécification de la clé à trouver dans les conteneurs de carte est le seul paramètre requis que la fonction map :: search () permet.

Valeur renvoyée dans Map :: Search () Fonction en C++

La valeur calculée de la fonction est soit un itérateur ou un itérateur constant qui pointe vers l'emplacement de la clé dans la carte. Si en quelque sorte la clé est absente des conteneurs de carte, la fonction renverra une itération ou une itération statique qui pointe vers la carte.Fonction end ().

Complétion de l'exécution pour le composant de recherche

Trouver des composants dans une fonction STD :: Map Search () prend o (log n) le temps de terminer. Parce qu'il y a un stockage interne des éléments comme un équilibrage de recherche binaire (BST), même dans le pire scénario, il devrait être O (log n) par rapport à Std :: String. En revanche, la complexité de temps de cas idéale pour la recherche est O (1) parce que les composants sont conservés dans une table relationnelle, et la clé sert d'indicateur lorsque vous essayez de rechercher dans des cartes non triées.

Exemple 01: Utilisez la fonction Map :: Search () pour rechercher le composant avec une valeur de clé fournie en C++

Voici l'extrait de code suivant; Nous avons utilisé la fonction map :: search () en C ++ pour trouver la clé où il est situé. Dans notre code, tout d'abord, nous avons ajouté le fichier d'en-tête «iOStream», qui est un flux standard d'entrée-sortie pour des objets comme CIN, COUT, etc. Ensuite, ajoutez le fichier d'en-tête «Map» qui contient des paires de valeurs de clé organisées, où chaque clé est distincte et ne peut être ajoutée ou supprimée. Ensuite, nous avons utilisé la «STD d'espace de noms» standard dans notre code parce que plus d'une variable, de la fonction, de la classe, etc., ne peut pas partager la même identité dans le contexte exact en C++.

#inclure
#inclure
Utilisation de Namespace Std;

La méthode principale (), qui a été créée pour commencer l'exécution du code, a ensuite été fournie. Dans la fonction principale (), premièrement, nous avons déclaré une variable «n» de type de données «entier». Le conteneur «Map M1» contient un ensemble de données disposé contenant des valeurs de clés, et «M1» est un membre des conteneurs associés dans la bibliothèque de modèle standard C ++. Gardez à l'esprit que les clés dans le conteneur «Map» sont exclusives. En conséquence, si de nouveaux éléments sont ajoutés lors de l'utilisation des clés actuelles, rien ne se passe. Cependant, si les clés coïncident, certaines fonctions membres uniques dans le conteneur «Map» peuvent ajouter de nouvelles données aux paires préexistantes.

Après cela, «cout» est utilisé pour imprimer la ligne d'information exacte écrite en guillemets. Alors «CIN» est utilisé pour prendre les contributions de l'utilisateur. Ensuite, le mot-clé «Auto» est utilisé pour trouver l'élément dans le conteneur «M1».

int main()

int n;
map m1 = 1, "Hello",
2, "Java",
3, "Python",
4, "Ruby",
5, "react",
6, "Angular",;
coutn;
Auto Item = M1.trouver (n);

Après la déclaration, la condition IF-Else est utilisée. Dans l'instruction IF, nous vérifions l'élément s'il est disponible dans Container M1, puis imprimez l'élément. S'il n'est pas dans le conteneur «M1», il montre le message d'erreur qui a été écrit dans le «cout».

if (article != M1.fin())

couter << "Key exists!" << endl << "The Key at index "

autre

couter <<"Key does not exist!" << endl << "Sorry for inconvenience."
<< endl <<"Please try again with correct key index from 1 to 6";

À la fin de la fonction principale (), nous retournerons le «exit_success» qui indique que le programme est exécuté avec succès.

return exit_success;

Voici l'illustration complète de la fonction Map :: Search (), qui est utilisée pour localiser le composant à l'aide de la valeur clé fournie par l'utilisateur.

Après avoir compilé le programme ci-dessus, il affichera le message suivant que l'utilisateur doit saisir l'indice de clé qu'il veut trouver. Les utilisateurs doivent saisir l'index de clé de la plage 1 à 6.

Comme vous pouvez le voir ci-dessous, lorsque l'utilisateur entre dans le 1 Index de clé, il montre le message que la «clé existe!»Et la clé de l'index 1 est« bonjour ».

Si l'utilisateur entre dans la clé d'index au-dessus de la plage de 1 à 6, le compilateur génère le message d'erreur que «s'il vous plaît, réessayez avec la touche d'index correcte de 1 à 6».

Exemple 02: Utilisez la fonction Map :: Search () pour afficher tous les composants après avoir découvert un composant

Prenons un autre exemple pour imprimer tous les composants d'ordre aléatoire après avoir découvert un composant. Pour éviter tout problème lors de la compilation et l'exécution du code, nous avons inclus le «bits / stdc++.Fichier d'en-tête h ”dans le code. La fonction principale () a été initialisée après que la bibliothèque d'en-tête et la «STD d'espace de noms» ont été ajoutées. Dans la fonction principale (), nous avons initialisé le conteneur M1. Alors les valeurs sont insérées dans un ordre aléatoire. Après cette instruction «cout» est utilisée pour imprimer la sortie, la même écrite en guillemets. Alors la condition «pour» est appliquée pour trouver la position à laquelle «2» est présent en utilisant la fonction find (). Puis renvoyer 0, ce qui implique que le programme est exécuté avec succès.

#inclure
Utilisation de Namespace Std;
int main()

Carte M1;
M1.insert (2, 101);
M1.insert (1, 689);
M1.insert (3, 350);
M1.insert (6, 991);
M1.insert (4, 541);
M1.insert (5, 542);
couter << "Elements from position 2 onward are: "<couter << "KEY\tELEMENT"<pour (Auto Iterator = M1.trouver (2); itérateur != M1.fin(); iterator ++)

couter
retour 0;

Voici la sortie du programme compilé:

Conclusion

Cet article a proposé suffisamment d'exemples pour illustrer le fonctionnement de la méthode MAP :: Search () de la langue C ++. Nous avons discuté de la carte :: Search () travaillant en c++. Nous avons également discuté des avantages, des paramètres et de la valeur renvoyée de la fonction map :: search (). En fin de compte, nous avons compilé quelques exemples pour aider l'utilisateur à rechercher le composant avec une valeur clé en C++.