/************************************************************************* * * Whenever you use an algorithm that needs to specify a target range, Either you must make sure that the interval is large enough * or that it will grow as the algorithm runs. * To increase the target interval during algorithm execution, use an iterator that is inserted, such as Ostream_stream, * back_inserter,front_inserter,inserter. * ************************************************************************/#include<iostream>#include<vector>#include<algorithm>//For_each,transform#include <iterator>//Istream_iterator,back_inserterusing namespacestd;intOpincrement (intVal) {return++Val;}intmain () {vector<int> Ivecvalues (Ten,1);//10 x 1vector<int>Ivecresult; cout<<& (*ivecresult.end ()) <<","<<ivecresult.size () <<Endl; Transform (Ivecvalues.begin (), Ivecvalues.end (), Back_inserter (Ivecresult), opincrement); //plug-in iteratorsFor_each (Ivecresult.begin (), Ivecresult.end (), [] (inti) {cout << i <<",";}); cout<<Endl; cout<<& (*ivecresult.end ()) <<","<< ivecresult.size () <<Endl; return 0; }
C + + uses algorithms to ensure that the target interval is large enough