logo

std::etsi C++:sta

std::etsi on sisällä määritelty funktio otsikkotiedosto löytää elementin annetulta alueelta. Se palauttaa iteraattorin määritetyn elementin ensimmäiseen esiintymiseen annetussa sekvenssissä. Jos elementtiä ei löydy, palautetaan iteraattori loppuun.

Syntaksi:



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

Parametrit:

    ensin: iteraattori sekvenssin alkuasentoon. viimeinen: iteraattori sijaintiin heti sekvenssin viimeisen sijainnin jälkeen. (Huomaa, että vector.end() osoittaa seuraavaan kohtaan sekvenssin viimeiseen elementtiin eikä sekvenssin viimeiseen kohtaan). arvo: haettava arvo.

Palautusarvo:

  • Jos arvo on löytyi sekvenssissä iteraattori palautetaan paikkaansa.
  • Jos arvo on ei löydetty , iteraattori viimeiseen paikkaan palautetaan.

HUOMAUTUS : input_iterator on käytetyn säilön iteraattorityyppi ja T on funktiomallissa määritetty tyyppinimi.



Esimerkki:

C++

merkkijonojen joukko c ohjelmointi






// C++ program to Demonstrate> // std::find for vectors> #include> // Driver code> int> main()> {> >std::vector<>int>>asia{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; }>

>

>

Lähtö

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

Aika monimutkaisuus: Päällä)
Aputila: O(1)

HUOMAA: std::find()-funktio on määritelty otsikkotiedoston sisällä. Joten meidän on sisällytettävä tämä otsikkotiedosto ennen hakutoiminnon käyttöä.

Koska näemme, että std::find():n aikamonimutkaisuus on O(n) ja se toimii myös lajittelemattomissa sekvensseissä, voimme päätellä, että se käyttää lineaarinen haku algoritmi sen toteutuksessa.

Aiheeseen liittyvät artikkelit:

  • std::haku
  • std::etsi_jos, std::etsi_jos_ei
  • std::nth_element
  • std::find_end