The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

find_if (3)
  • >> find_if (3) ( Solaris man: Библиотечные вызовы )
  • 
                           Standard C++ Library
                 Copyright 1998, Rogue Wave Software, Inc.
    
    
    NAME
         find_if
    
          - Finds an occurrence of a value in a sequence that  satis-
         fies a specified predicate.
    
    
    
    SYNOPSIS
         #include <algorithm>
         template <class InputIterator, class Predicate>
          InputIterator find_if(InputIterator first,
                                InputIterator last,
                                Predicate pred);
    
    
    
    DESCRIPTION
         The find_if algorithm allows you to  search  for  the  first
         element in a sequence that satisfies a particular condition.
         The sequence is defined by iterators first and  last,  while
         the  condition is defined by the third argument: a predicate
         function that returns a boolean value. find_if  returns  the
         first  iterator  i  in the range [first, last) for which the
         following condition holds:
    
         pred(*i) == true.
    
         If no such iterator is found, find_if returns last.
    
    
    
    COMPLEXITY
         find_if performs at  most  last-first  applications  of  the
         corresponding predicate.
    
    
    
    EXAMPLE
         /
         // find.cpp
         //
         #include <vector>
         #include <algorithm>
         #include <functional>
         #include <iostream>
         using namespace std;
    
         int main()
          {
           typedef vector<int>::iterator iterator;
           int d1[10] = {0,1,2,2,3,4,2,2,6,7};
    
            // Set up a vector
           vector<int> v1(d1,d1 + 10);
    
            // Try find
           iterator it1 = find(v1.begin(),v1.end(),3);
            // it1 = v1.begin() + 4;
    
            // Try find_if
           iterator it2 =
             find_if(v1.begin(),v1.end(),bind1st(equal_to<int>(),3));
            // it2 = v1.begin() + 4
    
            // Try both adjacent_find variants
           iterator it3 = adjacent_find(v1.begin(),v1.end());
            // it3 = v1.begin() +2
    
           iterator it4 =
              adjacent_find(v1.begin(),v1.end(),equal_to<int>());
            // v4 = v1.begin() + 2
    
            // Output results
           cout << *it1 << " " << *it2 << " " << *it3 << " "
                 << *it4 << endl;
    
           return 0;
          }
    
         Program Output
    
    
    
         3 3 2 2
    
    
    
    WARNINGS
         If your compiler does not support default  template  parame-
         ters,  then you always need to supply the Allocator template
         argument. For instance, you have to write:
    
         vector<int, allocator<int> >
         instead of:
    
         vector<int>
    
         If your compiler does not support namespaces,  then  you  do
         not need the using declaration for std.
    
    
    
    SEE ALSO
         adjacent_find, Algorithms, find,_find_end, find_first_of
    
    
    
    


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру