logo

map find() funkcija C++ STL

The karte::atrast() ir C++ STL iebūvēta funkcija, kas atgriež iteratoru vai konstantu iteratoru, kas attiecas uz pozīciju, kurā atslēga atrodas kartē. Ja atslēgas nav kartes konteinerā, tā atgriež iteratoru vai konstantu iteratoru, kas attiecas uz map.end()

.
Sintakse:

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

Parametri: Funkcija pieņem vienu obligātu parametru atslēga, kas norāda kartes konteinerā meklējamo atslēgu.



Atgriešanas vērtība: Funkcija atgriež iteratoru vai nemainīgu iteratoru, kas attiecas uz pozīciju, kurā atslēga atrodas kartē. Ja atslēgas nav kartes konteinerā, tā atgriež iteratoru vai konstantu iteratoru, kas atsaucas uz map.end().

Laika sarežģītība elementa meklēšanai:
Laika sarežģītība elementu meklēšanai std::map ir O(log n). Pat sliktākajā gadījumā tas būs O(log n), jo elementi tiek iekšēji saglabāti kā līdzsvarotās binārās meklēšanas koks (BST), turpretim std::unordered_map Labākā gadījuma un vidējā gadījuma laika sarežģītība meklēšanai ir O(1), jo elementi tiek glabāti Hash tabulā, un tāpēc atslēga darbojas kā rādītājs, veicot meklēšanu nesakārtotās kartēs. Bet sliktākajā gadījumā meklēšanas laika sarežģītība ir O(N).

Tālāk ir parādīta iepriekš minētās funkcijas ilustrācija:

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

bash virknes garums

>

>

Izvade

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

Laika sarežģītība : O(log n)
Palīgtelpa : O(n)

Zemāk kods ir programma visu elementu drukāšanai pēc elementa atrašanas:

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

>

>

kas ir obj java
Izvade

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

Laika sarežģītība: O(log n)
Palīgtelpa: O(n)