logo

std::find en C++

std::trobar és una funció definida a l'interior fitxer de capçalera que troba l'element en l'interval donat. Retorna un iterador a la primera ocurrència de l'element especificat en la seqüència donada. Si no es troba l'element, es retorna un iterador fins al final.

Sintaxi:



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

Paràmetres:

    primer: iterador a la posició inicial de la seqüència. darrer: iterador a la posició just després de la posició final de la seqüència. (Tingueu en compte que vector.end() apunta a la següent posició a l'últim element de la seqüència i no a l'última posició de la seqüència). valor: valor a cercar.

Valor de retorn:

  • Si el valor és trobat en la seqüència, l'iterador torna a la seva posició.
  • Si el valor és no trobat , es retorna l'iterador a l'última posició.

NOTA : input_iterator és el tipus d'iterador del contenidor utilitzat i T és el nom del tipus definit a la plantilla de funció.



Exemple:

C++

trobar a la cadena c++






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

>

>

Sortida

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

Complexitat temporal: O(n)
Espai auxiliar: O(1)

NOTA: la funció std::find() es defineix dins del fitxer de capçalera. Per tant, hem d'incloure aquest fitxer de capçalera abans d'utilitzar la funció de cerca.

Com podem veure que la complexitat temporal del std::find() és O(n) i també funciona en seqüències no ordenades, podem concloure que utilitza el cerca lineal algorisme en la seva implementació.

Articles relacionats:

  • std::cerca
  • std::find_if, std::find_if_not
  • std::nth_element
  • std::find_end