std::find i C++

std::hitta är en funktion definierad inuti header-fil som hittar elementet i det givna intervallet. Den returnerar en iterator till den första förekomsten av det angivna elementet i den givna sekvensen. Om elementet inte hittas returneras en iterator till slutet.

Syntax:

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

Parametrar:

    först: iterator till startpositionen i sekvensen. last: iterator till position strax efter den sista positionen i sekvensen. (Observera att vector.end() pekar på nästa position till det sista elementet i sekvensen och inte på den sista positionen i sekvensen). värde: värde som ska sökas.

Returvärde :

  • Om värdet är hittades i sekvensen återförs iteratorn till sin position.
  • Om värdet är hittades inte , returneras iteratorn till den sista positionen.

NOTERA : input_iterator är iteratortypen för den använda behållaren och T är typnamnet definierat i funktionsmallen.

Exempel:

C++




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

Tidskomplexitet: På)
Hjälputrymme: O(1)

OBS: std::find()-funktionen är definierad i huvudfilen. Så vi måste inkludera den rubrikfilen innan vi använder sökfunktionen.

Eftersom vi kan se att tidskomplexiteten för std::find() är O(n) och den också fungerar på osorterade sekvenser, kan vi dra slutsatsen att den använder linjär sökning algoritmen i dess implementering.

Relaterade artiklar:

  • std::sök
  • std::hitta_om, std::hitta_om_inte
  • std::nth_element
  • std::find_end