template<typename T> class Mulitiplies:public binary_function<T,T,T> { public: Mulitiplies(){} ~Mulitiplies(){} T operator()(T x,T y) const { return x*y*3.14159265; } }; int main() { vector<double> vecs_int; for(double i=0;i<20;i++) { vecs_int.push_back(i); } list<double> lits_int; try { vecs_int.at(23); } catch(out_of_range &ot) { cout<<ot.what()<<endl; } //copy(vecs_int.begin(),vecs_int.end(),back_inserter(lits_int)); transform(vecs_int.begin(),vecs_int.end(),back_inserter(lits_int),bind2nd(Mulitiplies<double>(),4)); copy(lits_int.begin(),lits_int.end(),ostream_iterator<double>(cout," ")); return 0; }