logo

std::find in C++

std::vinden is een functie die binnenin is gedefinieerd headerbestand dat vindt het element in het opgegeven bereik. Het retourneert een iterator naar de eerste keer dat het opgegeven element in de gegeven reeks voorkomt. Als het element niet wordt gevonden, wordt een iterator tot het einde geretourneerd.

Syntaxis:



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

Parameters:

    eerste: iterator naar de beginpositie in de reeks. laatste: iterator naar positie net na de laatste positie in de reeks. (Merk op dat vector.end() verwijst naar de volgende positie van het laatste element van de reeks en niet naar de laatste positie van de reeks). waarde: waarde waarnaar moet worden gezocht.

Winstwaarde :

  • Als de waarde is gevonden in de reeks wordt de iterator naar zijn positie geretourneerd.
  • Als de waarde is niet gevonden , wordt de iterator naar de laatste positie geretourneerd.

OPMERKING : input_iterator is het iteratortype van de gebruikte container en T is de typenaam die is gedefinieerd in de functiesjabloon.



Voorbeeld:

C++

Java-index van






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

>

>

Uitvoer

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

Tijdcomplexiteit: Op)
Hulpruimte: O(1)

OPMERKING: de functie std::find() wordt gedefinieerd in het headerbestand. We moeten dus dat headerbestand opnemen voordat we de zoekfunctie gebruiken.

Omdat we kunnen zien dat de tijdscomplexiteit van de std::find() O(n) is en deze ook werkt op ongesorteerde reeksen, kunnen we concluderen dat deze de lineair zoeken algoritme bij de implementatie ervan.

Gerelateerde artikelen:

  • std::zoeken
  • std::vind_if, std::vind_if_not
  • std::n-de_element
  • std::vind_end