Using a Binary Function to Multiply Two Ranges : Function Template « Function « C++






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

1.A generic mode finding function.A generic mode finding function.
2.Function template: swap valuesFunction template: swap values
3.Simple template function to accept two parametersSimple template function to accept two parameters
4.template function for find a valuetemplate function for find a value
5.Creating a custom algorithm based on templateCreating a custom algorithm based on template
6.find all template function
7.Making a Sequence of Random Numbers
8.write function object
9.Use a Function Object to Hold state
10.template function for bubble sort
11.template function for compacting the items
12.Template copy array function
13.function template for getting the max value
14.Overriding a template function.
15.Using Standard Parameters with Template Functions