std::find i C++

std::find er en funktion defineret indeni header-fil, der finder elementet i det givne område. Det returnerer en iterator til den første forekomst af det angivne element i den givne sekvens. Hvis elementet ikke findes, returneres en iterator til slutningen.

Syntaks:

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

Parametre:

    først: iterator til startpositionen i sekvensen. sidste: iterator til position lige efter den endelige position i sekvensen. (Bemærk at vector.end() peger på den næste position til det sidste element i sekvensen og ikke på den sidste position i sekvensen). værdi: værdi, der skal søges i.

Returværdi:

  • Hvis værdien er fundet i sekvensen returneres iteratoren til sin position.
  • Hvis værdien er ikke fundet , returneres iteratoren til den sidste position.

BEMÆRK : input_iterator er iteratortypen for den brugte container og T er typenavnet defineret i funktionsskabelonen.

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

Produktion

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

Tidskompleksitet: På)
Hjælpeplads: O(1)

BEMÆRK: std::find()-funktionen er defineret i header-filen. Så vi skal inkludere den header-fil, før vi bruger find-funktionen.

Da vi kan se, at tidskompleksiteten af ​​std::find() er O(n), og den også virker på usorterede sekvenser, kan vi konkludere, at den bruger lineær søgning algoritme i dens implementering.

Relaterede artikler:

  • std::søgning
  • std::find_hvis, std::find_hvis_ikke
  • std::nth_element
  • std::find_end