std::for_eachを使う理由って何ですか?

普通にforで回しちゃなぜいけないのですか?
一々関数オブジェクトなんか作成しなきゃいけないのに・・・
notなんてifの中の条件を!すればいいだけでしょ?