Algorithm C++

#include 
#include 
#include 
using namespace std;
int midpoint(int a, int b);
template void show(const char *msg, vector vect);
int main()
{
  int i;
  vector v;
  for(i=1; i < 10; ++i) 
     v.push_back((double)i);
  show("Initial contents of v:", v);
  vector 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 void show(const char *msg, vector 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;
}