stdcpp/tsrc/Stdcpp_test/stlport/auto/stlport_inrprod/src/inrprod2.cpp
changeset 0 e4d67989cc36
child 18 47c74d1534e1
equal deleted inserted replaced
-1:000000000000 0:e4d67989cc36
       
     1  
       
     2 // STLport regression testsuite component.
       
     3 // To compile as a separate example, please #define MAIN.
       
     4 
       
     5 #include <vector>
       
     6 #include <numeric>
       
     7 #include <iostream>
       
     8 #include <iterator>
       
     9 #include <string>
       
    10 
       
    11 #ifdef MAIN 
       
    12 #define inrprod2_test main
       
    13 #endif
       
    14 static int add(int a_, int b_)
       
    15 {
       
    16   return a_ + b_;
       
    17 }
       
    18 
       
    19 static int mult(int a_, int b_)
       
    20 {
       
    21   return a_ * b_;
       
    22 }
       
    23 
       
    24 #if !defined (STLPORT) || defined(__STL_USE_NAMESPACES)
       
    25 using namespace std;
       
    26 #endif
       
    27 int inrprod2_test(int, char**)
       
    28 {
       
    29   cout<<"Results of inrprod2_test:"<<endl;
       
    30 
       
    31   vector <int> v1(3);
       
    32   vector <int> v2(v1.size());
       
    33   for(int i = 0; i < v1.size(); i++)
       
    34   {
       
    35     v1[i] = i + 1;
       
    36     v2[i] = v1.size() - i;
       
    37   }
       
    38   ostream_iterator<int> iter(cout, " ");
       
    39   cout << "Inner product(product of sums):\n\t";
       
    40   copy(v1.begin(), v1.end(), iter);
       
    41   cout << "\n\t";
       
    42   copy(v2.begin(), v2.end(), iter);
       
    43   int result =
       
    44     inner_product(v1.begin(), v1.end(),
       
    45                    v2.begin(),
       
    46                    1,
       
    47                    mult, add);
       
    48   cout << "\nis: " << result << endl;
       
    49   if(result == 64)
       
    50   return 0;
       
    51   else
       
    52   return 1;
       
    53 }