std::find în C++

std::găsește este o funcție definită în interior fișier antet care găsește elementul în intervalul dat. Returnează un iterator la prima apariție a elementului specificat în secvența dată. Dacă elementul nu este găsit, este returnat un iterator până la sfârșit.

Sintaxă:

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

Parametri:

    primul: iterator la poziția inițială în secvență. ultimul: iterator la poziție imediat după poziția finală în secvență. (Rețineți că vector.end() indică către următoarea poziție către ultimul element al secvenței și nu către ultima poziție a secvenței). valoare: valoare de căutat.

Valoare returnată :

  • Dacă valoarea este găsite în secvență, iteratorul este returnat la poziția sa.
  • Dacă valoarea este nu a fost găsit , iteratorul la ultima poziție este returnat.

NOTĂ : input_iterator este tipul de iterator al containerului utilizat și T este numele tipului definit în șablonul funcției.

Exemplu:

C++




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

Ieșire

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

Complexitatea timpului: Pe)
Spațiu auxiliar: O(1)

NOTĂ: funcția std::find() este definită în fișierul antet. Deci, trebuie să includem acel fișier antet înainte de a folosi funcția de căutare.

După cum putem vedea că complexitatea de timp a std::find() este O(n) și funcționează și pe secvențe nesortate, putem concluziona că folosește căutare liniară algoritm în implementarea sa.

Articole similare:

  • std::search
  • std::găsește_dacă, std::găsește_dacă_nu
  • std::nth_element
  • std::find_end