std::find у C++

std::знайти це функція, визначена всередині файл заголовка, який знаходить елемент у заданому діапазоні. Він повертає ітератор до першого входження зазначеного елемента в даній послідовності. Якщо елемент не знайдено, повертається ітератор до кінця.

Синтаксис:

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

Параметри:

    first: ітератор на початкову позицію в послідовності. last: ітератор до позиції відразу після кінцевої позиції в послідовності. (Зверніть увагу, що vector.end() вказує на наступну позицію до останнього елемента послідовності, а не до останньої позиції послідовності). значення: значення для пошуку.

Повернене значення:

  • Якщо значення є знайдено у послідовності повертається ітератор на його позицію.
  • Якщо значення є не знайдено , повертається ітератор на останню позицію.

ПРИМІТКА : input_iterator — тип ітератора використовуваного контейнера і Т це ім'я типу, визначене в шаблоні функції.

приклад:

C++




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

Вихід

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

Часова складність: O(n)
Допоміжний простір: О(1)

ПРИМІТКА: функція std::find() визначена у файлі заголовка. Отже, нам потрібно включити цей файл заголовка перед використанням функції пошуку.

Оскільки ми бачимо, що часова складність std::find() становить O(n), і він також працює з несортованими послідовностями, можна зробити висновок, що він використовує лінійний пошук алгоритм її реалізації.

Пов'язані статті:

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