The map::find() este o funcție încorporată în C++ STL care returnează un iterator sau un iterator constant care se referă la poziția în care este prezentă cheia în hartă. Dacă cheia nu este prezentă în containerul hărții, returnează un iterator sau un iterator constant care se referă la map.end()
.
Sintaxă:
iterator=map_name.find(key) or constant iterator=map_name.find(key)>
Parametri: Funcția acceptă un parametru obligatoriu cheie, care specifică cheia de căutat în containerul hărții.
Valoare returnată: Funcția returnează un iterator sau un iterator constant care se referă la poziția în care este prezentă cheia pe hartă. Dacă cheia nu este prezentă în containerul hărții, returnează un iterator sau un iterator constant care se referă la map.end().
Complexitatea timpului pentru elementul de căutare:
Complexitatea timpului pentru căutarea elementelor în std::hartă este O(log n). Chiar și în cel mai rău caz, va fi O(log n) deoarece elementele sunt stocate intern ca arbore de căutare binar echilibrat (BST), în timp ce, în std::unordered_map Cel mai bun caz și complexitatea timpului mediu al cazului pentru căutare este O(1) deoarece elementele sunt stocate într-un tabel Hash și, prin urmare, cheia acționează ca un index în timpul căutării în hărți neordonate. Dar cel mai rău caz complexitatea timpului pentru căutare este O(N).
Mai jos este ilustrarea funcției de mai sus:
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; }> |
introducerea șirului de caractere în java
>
>Ieșire
Element 2 : found : Value : 30 Element 5 : Not found>
Complexitatea timpului : O(log n)
Spațiu auxiliar : Pe)
Codul de mai jos este un program pentru a tipări toate elementele după găsirea unui element:
CPP
în regex java
// 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; }> |
>
>Ieșire
Elements from position of 3 in the map are : KEY ELEMENT 3 20 4 50>
Complexitatea timpului: O(log n)
Spațiu auxiliar: Pe)