logo

std::raskite C++

std::rasti yra viduje apibrėžta funkcija antraštės failą randa elementą duotame diapazone. Jis grąžina iteratorių į pirmąjį nurodyto elemento pasireiškimą nurodytoje sekoje. Jei elementas nerastas, grąžinamas iteratorius iki galo.

Sintaksė:



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

Parametrai:

    pirma: iteratorius į pradinę sekos padėtį. paskutinis: iteratorius į poziciją iškart po paskutinės pozicijos sekoje. (Atkreipkite dėmesį, kad vektorius.end() nukreipia į kitą vietą iki paskutinio sekos elemento, o ne į paskutinę sekos vietą). reikšmė: vertė, kurios reikia ieškoti.

Grąžinimo vertė:

  • Jei vertė yra rasta sekoje iteratorius grąžinamas į savo padėtį.
  • Jei vertė yra nerastas , iteratorius grąžinamas į paskutinę padėtį.

PASTABA : input_iterator yra naudojamo konteinerio iteratoriaus tipas ir T yra tipo pavadinimas, apibrėžtas funkcijos šablone.



Pavyzdys:

C++

32 bitų architektūra prieš 64 bitų






// C++ program to Demonstrate> // std::find for vectors> #include> // Driver code> int> main()> {> >std::vector<>int>>dalykas{10, 20, 30, 40};> >// Iterator used to store the position> >// of searched element> >std::vector<>int>>::iterator it;> >// 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; }>

>

>

Išvestis

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

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

PASTABA: funkcija std::find() yra apibrėžta antraštės faile. Taigi, prieš naudodami paieškos funkciją turime įtraukti tą antraštės failą.

Kadangi matome, kad std::find() laiko sudėtingumas yra O(n) ir jis taip pat veikia nerūšiuotose sekose, galime daryti išvadą, kad jis naudoja linijinė paieška algoritmas jį įgyvendinant.

Susiję straipsniai:

  • std::search
  • std::rasti_jei, std::rasti_jei_ne
  • std::nth_element
  • std::find_end