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;
}
Related examples in the same category