Use a binary function object to find the midpoints between elements in v3 and v4 and store the results in v5.
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
// finds the midpoint between two values.
class midpoint : binary_function<int, int, double> {
public:
result_type operator()(first_argument_type a, second_argument_type b) {
return((a-b) / 2) + b;
}
};
int main(){
int i;
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);
transform(v3.begin(), v3.end(), v4.begin(), v5.begin(), midpoint());
return 0;
}
Related examples in the same category