Mega Code Archive

 
Categories / C++ / Algorithm
 

Demonstrate the two-sequence form of transform()

#include <iostream> #include <vector> #include <algorithm> using namespace std; int midpoint(int a, int b); template<class T> void show(const char *msg, vector<T> vect); int main() {   int i;   vector<double> v;   for(i=1; i < 10; ++i)       v.push_back((double)i);   show("Initial contents of v:", v);   vector<int> v3, v4, v5(10);   for(i = 0; i < 10; ++i)       v3.push_back(i);   for(i = 10; i < 20; ++i) {      if(i%2) {         v4.push_back(i);       }else {         v4.push_back(-i);      }   }   show("Contents of v3:", v3);   show("Contents of v4:", v4);   transform(v3.begin(), v3.end(), v4.begin(), v5.begin(), midpoint);   show("Contents of v5:", v5);   return 0; } template<class T> void show(const char *msg, vector<T> vect) {   cout << msg << endl;   for(unsigned i=0; i < vect.size(); ++i)     cout << vect[i] << endl; } // Return the whole-number midpoint between two values. int midpoint(int a, int b) {   return((a-b) / 2) + b; }