Which of these 2 methods is better and why?
Method 1:
void fun(int i) { //do stuff } ... for_each(a.begin(), a.end(), fun);
Method 2
#1 is simpler to declare the function while #2 the functor looks more like a function call.
(Sometime you have to despair of c++ syntax)