Today i was playing around with some standard Library functions.. and found this weird output from std::transform() and std::back_inserter whenever the container am using(in this case vector) has more than 2 elements in it.I don't understand this kind of behavior can anyone there help me...
#include<iostream>  
#include<algorithm>  
#include<vector>  
using namespace std;  
/* this version of change works fine for me when i store the incoming value into a   
   static variable  
int change(int n){  
 static int m=n;
 return m * m;  
}*/  
int change(int n){  
return n*n;  
}  
int main(){  
 vector<int> v2(3,3),  
            v1;  
 transform(v2.begin(),v2.end(),back_inserter(v2),change);  
 for(auto v: v2)  
  {   
    cout << v <<"  ";  // prints out a strange random 5th value in v2.  
  }  
 return 0;  
}  
 
     
    