23 General utilities library [utilities]

23.14 Function objects [function.objects]

23.14.14 Searchers [func.search]

23.14.14.1 Class template default_­searcher [func.search.default]

template <class ForwardIterator1, class BinaryPredicate = equal_to<>>
  class default_searcher {
  public:
    default_searcher(ForwardIterator1 pat_first, ForwardIterator1 pat_last,
                     BinaryPredicate pred = BinaryPredicate());

    template <class ForwardIterator2>
      pair<ForwardIterator2, ForwardIterator2>
        operator()(ForwardIterator2 first, ForwardIterator2 last) const;

  private:
    ForwardIterator1 pat_first_;        // exposition only
    ForwardIterator1 pat_last_;         // exposition only
    BinaryPredicate pred_;              // exposition only
  };

default_searcher(ForwardIterator pat_first, ForwardIterator pat_last, BinaryPredicate pred = BinaryPredicate());

Effects: Создает default_­searcher объект, инициализируясь pat_­first_­ с помощью pat_­first, pat_­last_­с помощью pat_­lastи pred_­ с помощью pred.

Throws: Любое исключение, созданное конструктором копирования BinaryPredicate или ForwardIterator1.

template<class ForwardIterator2> pair<ForwardIterator2, ForwardIterator2> operator()(ForwardIterator2 first, ForwardIterator2 last) const;

Effects: Возвращает пару итераторов i и j таких, что

  • i == search(first, last, pat_­first_­, pat_­last_­, pred_­), а также

  • если i == last, то j == lastиначе j == next(i, distance(pat_­first_­, pat_­last_­)).