The kartta::etsi() on C++ STL:n sisäänrakennettu funktio, joka palauttaa iteraattorin tai vakioiteraattorin, joka viittaa sijaintiin, jossa avain on kartalla. Jos avain ei ole karttasäiliössä, se palauttaa iteraattorin tai vakioiteraattorin, joka viittaa map.end()
.
Syntaksi:
iterator=map_name.find(key) or constant iterator=map_name.find(key)>
Parametrit: Funktio hyväksyy yhden pakollisen parametrin avain, joka määrittää karttasäilössä etsittävän avaimen.
Palautusarvo: Funktio palauttaa iteraattorin tai vakioiteraattorin, joka viittaa sijaintiin, jossa avain on kartalla. Jos avain ei ole karttasäiliössä, se palauttaa iteraattorin tai vakioiteraattorin, joka viittaa map.end()-funktioon.
Hakuelementin aika monimutkaisuus:
Elementtien etsimisen aika monimutkaisuus std::kartta on O(log n). Jopa pahimmassa tapauksessa se on O(log n), koska elementit on tallennettu sisäisesti tasapainotettuna binaarihakupuuna (BST), kun taas std::järjestämätön_kartta paras tapaus ja keskimääräinen tapausaika monimutkaisuus haussa on O(1), koska elementit tallennetaan Hash-taulukkoon ja siksi avain toimii indeksinä haettaessa järjestämättömistä kartoista. Mutta pahimmassa tapauksessa haun aika monimutkaisuus on O(N).
Alla on esimerkki yllä olevasta funktiosta:
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; }> |
syöttää merkkijono javassa
>
>Lähtö
Element 2 : found : Value : 30 Element 5 : Not found>
Aika monimutkaisuus : O(log n)
Aputila : Päällä)
Alla on ohjelma, joka tulostaa kaikki elementit elementin löytämisen jälkeen:
CPP
linkitetty lista javassa
// 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; }> |
>
>Lähtö
Elements from position of 3 in the map are : KEY ELEMENT 3 20 4 50>
Aika monimutkaisuus: O(log n)
Aputila: Päällä)