Поиск элементов с использованием алгоритмов STL
На этом этапе вы узнаете, как использовать алгоритмы STL для поиска элементов в контейнерах. Библиотека <algorithm>
предоставляет мощные функции для поиска и нахождения элементов.
Откройте WebIDE и создайте новый файл с именем find_demo.cpp
в директории ~/project
:
touch ~/project/find_demo.cpp
Добавьте следующий код в файл find_demo.cpp
:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
// Create a vector of integers
std::vector<int> numbers = {5, 2, 8, 1, 9, 3, 8};
// Find first occurrence of a specific element
auto it = std::find(numbers.begin(), numbers.end(), 8);
if (it!= numbers.end()) {
std::cout << "First occurrence of 8 at index: "
<< std::distance(numbers.begin(), it) << std::endl;
}
// Count occurrences of an element
int count = std::count(numbers.begin(), numbers.end(), 8);
std::cout << "Number of 8s in the vector: " << count << std::endl;
// Find if any element is greater than 6
bool has_large_element = std::any_of(numbers.begin(), numbers.end(),
[](int n) { return n > 6; });
std::cout << "Vector has element > 6: "
<< (has_large_element? "Yes" : "No") << std::endl;
// Find the minimum and maximum elements
auto min_it = std::min_element(numbers.begin(), numbers.end());
auto max_it = std::max_element(numbers.begin(), numbers.end());
std::cout << "Minimum element: " << *min_it << std::endl;
std::cout << "Maximum element: " << *max_it << std::endl;
return 0;
}
Скомпилируйте и запустите программу:
g++ find_demo.cpp -o find_demo
./find_demo
Пример вывода:
First occurrence of 8 at index: 2
Number of 8s in the vector: 2
Vector has element > 6: Yes
Minimum element: 1
Maximum element: 9
Основные моменты о алгоритмах поиска STL:
std::find()
находит первое вхождение элемента
std::count()
подсчитывает количество вхождений элемента
std::any_of()
проверяет, удовлетворяет ли какой - то элемент условию
std::min_element()
и std::max_element()
находят минимальное и максимальное значения
- Лямбда - функции можно использовать для настройки условий поиска
- Возвращаемые итераторы указывают на найденные элементы