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