Mega Code Archive

 
Categories / C++ / Function
 

Using a Binary Function to Multiply Two Ranges

#include <vector> #include <iostream> #include <algorithm> template <typename elementType> class CMultiply { public:     elementType operator () (const elementType& elem1,const elementType& elem2){         return (elem1 * elem2);     } }; int main (){     using namespace std;     vector <int> v1, v2, vecResult;     for (int nCount1 = 0; nCount1 < 10; ++ nCount1)         v1.push_back (nCount1);     for (int nCount2 = 100; nCount2 < 110; ++ nCount2)         v2.push_back (nCount2);     vecResult.resize (10);     transform ( v1.begin(),                  v1.end(),                  v2.begin(),  // multiplier values                 vecResult.begin(),      // range that holds result                 CMultiply <int>() );    // the function that multiplies     for (size_t nIndex1 = 0; nIndex1 < v1.size (); ++ nIndex1)         cout << v1 [nIndex1] << ' ';     for (size_t nIndex2 = 0; nIndex2 < v2.size (); ++nIndex2)         cout << v2 [nIndex2] << ' ';     for (size_t nIndex = 0; nIndex < vecResult.size (); ++ nIndex)         cout << vecResult [nIndex] << ' ';     return 0; }