Вероятно, простейшим из полезных алгоритмов является алгоритм find(). Он находит элемент последовательности с заданным значением.
template
In find(In first, In last, const T& val)
// находит первый элемент в последовательности [first,last), равный val {
while (first!=last && *first != val) ++first; return first;
}
Посмотрим на определение алгоритма find(). Естественно, вы можете использовать алгоритм find(), не зная, как именно он реализован, — фактически мы его уже применяли. Однако определение алгоритма find() иллюстрирует много полезных проектных идей, поэтому оно достойно изучения. Г7Г Прежде всего, алгоритм find() применяется к последовательности, опреде- “1 ленной парой итераторов. Мы ищем значение val в полуоткрытой последовательности [first:last). Результат, возвращаемый функцией find(), является итератором. Он указывает либо на первый элемент последовательности, равный значению val, либо на элемент last. Возвращение итератора на элемент, следующий за последним элементом последовательности, — самый распространенный способ, с помощью которого алгоритмы библиотеки STL сообщают о том, что элемент не найден. Итак, мы можем использовать алгоритм find() следующим образом: void f(vector& v, int x)
{
vector::iterator p = find(v.begin(),v.end(),x); if (p!=v.end()) {
// мы нашли x в v
}
else {
// в v нет элемента, равного x
}
// . . .
}
Опубликовал katy
April 22 2015 22:15:21 ·
0 Комментариев ·
2406 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.