The OpenNET Project / Index page

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

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

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

binary_search (3)
  • >> binary_search (3) ( Solaris man: Библиотечные вызовы )
  • 
                           Standard C++ Library
                 Copyright 1998, Rogue Wave Software, Inc.
    
    
    NAME
         binary_search
    
          - Performs a binary search for a value on a container.
    
    
    
    SYNOPSIS
         #include <algorithm>
         template <class ForwardIterator, class T>
         bool
         binary_search(ForwardIterator first, ForwardIterator last,
                      const T& value);
         template <class ForwardIterator, class T, class Compare>
         bool
         binary_search(ForwardIterator first, ForwardIterator last,
                      const T& value, Compare comp);
    
    
    
    DESCRIPTION
         The binary_search algorithm, like other  related  algorithms
         (equal_range, lower_bound and upper_bound) performs a binary
         search on ordered containers. All binary  search  algorithms
         have  two  versions.  The  first  version uses the less than
         operator (operator<) to perform the comparison, and  assumes
         that  the  sequence has been sorted using that operator. The
         second version allows you to include a  function  object  of
         type Compare, which it assumes was the function used to sort
         the sequence. The function object must be  a  binary  predi-
         cate.
    
         The binary_search algorithm returns true if a sequence  con-
         tains an element equivalent to the argument value. The first
         version of binary_search returns true if the  sequence  con-
         tains  at  least  one  element  that  is equal to the search
         value. The second version  of  the  binary_search  algorithm
         returns  true  if the sequence contains at least one element
         that satisfies the conditions of  the  comparison  function.
         Formally, binary_search returns true if there is an iterator
         i in the range [first, last) that satisfies the  correspond-
         ing conditions:
    
         !(*i < value) && !(value < *i)
    
         or
         comp(*i, value) == false && comp(value, *i) == false
    
    
    
    COMPLEXITY
         binary_search performs at most log(last - first)  +  2  com-
         parisons.
    
    
    
    EXAMPLE
            //
            // b_search.cpp
            //
          #include <vector>
          #include <algorithm>
          #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 binary_search variants
            //
           sort(v1.begin(),v1.end());
           bool b1 = binary_search(v1.begin(),v1.end(),3);
           bool b2 =
             binary_search(v1.begin(),v1.end(),11,less<int>());
            //
            // Output results
            //
           cout << "In the vector: ";
           copy(v1.begin(),v1.end(),
                   ostream_iterator<int,char>(cout," "));
    
           cout << endl << "The number 3 was "
                 << (b1 ? "FOUND" : "NOT FOUND");
           cout << endl << "The number 11 was "
                 << (b2 ? "FOUND" : "NOT FOUND") << endl;
           return 0;
          }
    
         Program Output
    
         In the vector: 0 1 2 2 2 2 3 4 6 7
         The number 3 was FOUND
         The number 11 was NOT FOUND
    
    
    
    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
         equal_range, lower_bound, upper_bound
    
    
    
    


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




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

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