equal
deleted
inserted
replaced
|
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 } |