Czy przy użyciu algorytmów STL lepiej jest przekazać wskaźnik funkcji lub funktor?

Która z tych dwóch metod jest lepsza i dlaczego?

Metoda 1:

<code>void fun(int i) {
  //do stuff
}

...
for_each(a.begin(), a.end(), fun);
</code>

Metoda 2:

<code>class functor {
public:
  void operator()(int i);
};

...
for_each(a.begin(), a.end(), functor());
</code>

Edycja: Czy należy sformułować to w ten sposób, w jakiej sytuacji jedna z powyższych metod jest lepsza od drugiej?

Wielkie dzięki!

questionAnswers(6)

yourAnswerToTheQuestion