std::finn i C++

std::finn er en funksjon definert inne header-fil som finner elementet i det gitte området. Den returnerer en iterator til den første forekomsten av det angitte elementet i den gitte sekvensen. Hvis elementet ikke blir funnet, returneres en iterator til slutten.

Syntaks:

input_iterator std::find (input_iterator first , input_iterator l ast , const T& value ); 

Parametere:

    først: iterator til startposisjonen i sekvensen. siste: iterator til posisjon like etter den endelige posisjonen i sekvensen. (Merk at vector.end() peker til neste posisjon til det siste elementet i sekvensen og ikke til den siste posisjonen i sekvensen). verdi: verdi som skal søkes i.

Returverdi:

  • Hvis verdien er funnet i sekvensen returneres iteratoren til sin posisjon.
  • Hvis verdien er ikke funnet , returneres iteratoren til siste posisjon.

MERK : input_iterator er iteratortypen til den brukte beholderen og T er typenavnet definert i funksjonsmalen.

Eksempel:

C++




// C++ program to Demonstrate> // std::find for vectors> #include> // Driver code> int> main()> {> > std::vector <> int> >ting{10, 20, 30, 40};> > // Iterator used to store the position> > // of searched element> > std::vector <> int> >::iterator det;> > // Print Original Vector> > std::cout < <> 'Original vector :'> ;> > > for> (> int> i = 0; i std::cout < < ' ' < < vec[i]; std::cout < < ' '; // Element to be searched int ser = 30; // std::find function call it = std::find(vec.begin(), vec.end(), ser); if (it != vec.end()) { std::cout < < 'Element ' < < ser < < ' found at position : '; std::cout < < it - vec.begin() < < ' (counting from zero) '; } else std::cout < < 'Element not found. '; return 0; }>

Produksjon

Original vector : 10 20 30 40 Element 30 found at position : 2 (counting from zero) 

Tidskompleksitet: På)
Hjelpeplass: O(1)

MERK: std::find()-funksjonen er definert i overskriftsfilen. Så vi må inkludere den overskriftsfilen før vi bruker finnefunksjonen.

Ettersom vi kan se at tidskompleksiteten til std::find() er O(n) og den også fungerer på usorterte sekvenser, kan vi konkludere med at den bruker lineært søk algoritmen i implementeringen.

Relaterte artikler:

  • std::søk
  • std::finn_hvis, std::finn_hvis_ikke
  • std::nth_element
  • std::finn_ende