Le map::trouver() est une fonction intégrée en C++ STL qui renvoie un itérateur ou un itérateur constant qui fait référence à la position où la clé est présente dans la carte. Si la clé n'est pas présente dans le conteneur de carte, elle renvoie un itérateur ou un itérateur constant qui fait référence à map.end()
.
Syntaxe:
iterator=map_name.find(key) or constant iterator=map_name.find(key)>
Paramètres: La fonction accepte un paramètre obligatoire clé, qui spécifie la clé à rechercher dans le conteneur de carte.
Valeur de retour : La fonction renvoie un itérateur ou un itérateur constant qui fait référence à la position où la clé est présente dans la carte. Si la clé n'est pas présente dans le conteneur de carte, elle renvoie un itérateur ou un itérateur constant qui fait référence à map.end().
Complexité temporelle pour la recherche d'un élément :
La complexité temporelle de la recherche d'éléments dans std :: carte est O (log n). Même dans le pire des cas, ce sera O(log n) car les éléments sont stockés en interne sous forme d'arbre de recherche binaire équilibré (BST) alors que, dans std :: unordered_map Dans le meilleur des cas et dans le cas moyen, la complexité temporelle de la recherche est O (1) car les éléments sont stockés dans une table de hachage et la clé agit donc comme un index lors de la recherche dans des cartes non ordonnées. Mais la complexité temporelle dans le pire des cas pour la recherche est O(N).
Ci-dessous l'illustration de la fonction ci-dessus :
C++
// C++ program for illustration> // of map::find() function> #include> using> namespace> std;> int> main()> {> >// Initialize container> >map<>int>,>int>>m;> >// Insert elements in random order> >m.insert({ 2, 30 });> >m.insert({ 1, 40 });> >m.insert({ 3, 20 });> >m.insert({ 4, 50 });> >int> s1=2;>//element1 to find (exist in the map)> >int> s2=5;>//element2 to find (does not exist in the map)> > >cout <<>'Element '>< if(m.find(s1)!=m.end()){ //if the element is found before the end of the map cout<<' : found : Value : '< //if the element is present then you can access it using the index } else cout<<' : Not found'< cout << 'Element '< if(m.find(s2)!=m.end()){ //if the element is found before the end of the map cout<<' : found : Value : '< //if the element is present then you can access it using the index } else cout<<' : Not found'< return 0; }> |
concaténation de chaînes
>
>Sortir
Element 2 : found : Value : 30 Element 5 : Not found>
Complexité temporelle : O(log n)
Espace auxiliaire : Sur)
Le code ci-dessous se trouve un programme pour imprimer tous les éléments après avoir trouvé un élément :
RPC
// C++ program for illustration> // of map::find() function> #include> using> namespace> std;> int> main()> {> >// Initialize container> >map<>int>,>int>>mp;> >// Insert elements in random order> >mp.insert({ 2, 30 });> >mp.insert({ 1, 40 });> >mp.insert({ 3, 20 });> >mp.insert({ 4, 50 });> >cout <<>'Elements from position of 3 in the map are :
'>;> >cout <<>'KEY ELEMENT
'>;> >// find() function finds the position> >// at which 3 is present> >for> (>auto> itr = mp.find(3); itr != mp.end(); itr++) {> > >cout ' ' '
'; } return 0; }> |
>
>Sortir
java longueur du tableau
Elements from position of 3 in the map are : KEY ELEMENT 3 20 4 50>
Complexité temporelle : O (log n)
Espace auxiliaire : Sur)