logo

std::find w C++

std::znajdź jest funkcją zdefiniowaną wewnątrz plik nagłówkowy to znajduje element w podanym zakresie. Zwraca iterator do pierwszego wystąpienia określonego elementu w danej sekwencji. Jeśli element nie zostanie znaleziony, zwracany jest iterator do końca.

Składnia:



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

Parametry:

    pierwszy: iterator do pozycji początkowej w sekwencji. last: iterator do pozycji tuż za końcową pozycją w sekwencji. (Zauważ, że wektor.end() wskazuje następną pozycję do ostatniego elementu sekwencji, a nie ostatnią pozycję sekwencji). wartość: wartość do przeszukania.

Wartość zwracana:

  • Jeśli wartość jest znaleziony w sekwencji iterator powraca do swojej pozycji.
  • Jeśli wartość jest nie znaleziono , zwracany jest iterator do ostatniej pozycji.

NOTATKA : input_iterator jest typem iteratora używanego kontenera i T to nazwa typu zdefiniowana w szablonie funkcji.



Przykład:

C++

aktor Ranbir Kapoor wiek






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

>

>

Wyjście

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

Złożoność czasowa: NA)
Przestrzeń pomocnicza: O(1)

UWAGA: funkcja std::find() jest zdefiniowana w pliku nagłówkowym. Dlatego przed użyciem funkcji wyszukiwania musimy dołączyć ten plik nagłówkowy.

Jak widzimy, że złożoność czasowa metody std::find() wynosi O(n) i działa ona również na nieposortowanych sekwencjach, możemy stwierdzić, że wykorzystuje ona metodę wyszukiwanie liniowe algorytm w jego implementacji.

Powiązane artykuły:

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