The OpenNET Project / Index page

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

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

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

for_each (3)
  • >> for_each (3) ( Solaris man: Библиотечные вызовы )
  • 
                           Standard C++ Library
                 Copyright 1998, Rogue Wave Software, Inc.
    
    
    NAME
         for_each
    
          - Applies a function to each element in a range.
    
    
    
    SYNOPSIS
         #include <algorithm>
         template <class InputIterator, class Function>
         void for_each(InputIterator first, InputIterator last,
                       Function f);
    
    
    
    DESCRIPTION
         The for_each algorithm applies function f to all members  of
         the  sequence  in  the  range [first, last), where first and
         last are iterators that define the sequence.  Since  this  a
         non-mutating  algorithm,  the  function  f  cannot  make any
         modifications to the sequence, but it  can  achieve  results
         through  side  effects  (such  as copying or printing). If f
         returns a result, the result is ignored.
    
    
    
    COMPLEXITY
         The function f is applied exactly last - first times.
    
    
    
    EXAMPLE
         //
         // for_each.cpp
         //
         #include <vector>
         #include <algorithm>
         #include <functional>
         #include <iostream>
         using namespace std;
    
          // Function class that outputs its argument times x
         template <class Arg>
         class out_times_x :  private unary_function<Arg,void>
          {
           private:
              Arg multiplier;
    
           public:
              out_times_x(const Arg& x) : multiplier(x) { }
              void operator()(const Arg& x)
                  { cout << x * multiplier << " " << endl; }
          };
    
         int main()
          {
           int sequence[5] = {1,2,3,4,5};
    
    
            // Set up a vector
           vector<int> v(sequence,sequence + 5);
    
    
            // Setup a function object
           out_times_x<int> f2(2);
    
            for_each(v.begin(),v.end(),f2);   // Apply function
    
           return 0;
          }
    
         Program Output
    
    
    
         2
         4
         6
         8
         10
    
    
    
    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
         Algorithms, Function_Objects
    
    
    
    


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




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

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