logo

map find() funkcija C++ STL

The žemėlapis::rasti() yra C++ STL integruota funkcija, kuri grąžina iteratorių arba pastovų iteratorių, nurodantį vietą, kurioje raktas yra žemėlapyje. Jei rakto nėra žemėlapio konteineryje, jis grąžina iteratorių arba nuolatinį iteratorių, kuris nurodo map.end()

.
Sintaksė:

iterator=map_name.find(key) or constant iterator=map_name.find(key)>

Parametrai: Funkcija priima vieną privalomą parametrą Raktas, kuriame nurodomas raktas, kurio reikia ieškoti žemėlapio konteineryje.



Grąžinimo vertė: Funkcija grąžina iteratorių arba nuolatinį iteratorių, kuris nurodo vietą, kurioje raktas yra žemėlapyje. Jei rakto nėra žemėlapio konteineryje, jis grąžina iteratorių arba nuolatinį iteratorių, kuris nurodo map.end().

Elemento paieškos laiko sudėtingumas:
Elementų paieškos laiko sudėtingumas std::žemėlapis yra O(log n). Net ir blogiausiu atveju tai bus O (log n), nes elementai saugomi viduje kaip subalansuotos dvejetainės paieškos medis (BST), o std::netvarkomas_žemėlapis geriausiu atveju ir vidutinis atvejo sudėtingumas ieškant yra O(1), nes elementai yra saugomi maišos lentelėje, todėl raktas veikia kaip indeksas ieškant netvarkinguose žemėlapiuose. Tačiau blogiausiu atveju paieškos sudėtingumas yra O (N).

Žemiau yra aukščiau nurodytos funkcijos iliustracija:

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; }>

mvc skirta java

>

>

Išvestis

Element 2 : found : Value : 30 Element 5 : Not found>

Laiko sudėtingumas : O(log n)
Pagalbinė erdvė : O(n)

Žemiau yra programa, skirta spausdinti visus elementus radus elementą:

CPP




// 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; }>

>

greito rūšiavimo algoritmas
>

Išvestis

Elements from position of 3 in the map are : KEY ELEMENT 3 20 4 50>

Laiko sudėtingumas: O(log n)
Pagalbinė erdvė: O(n)