Uso estándar preferido: rango basado para o std :: for_each
In C ++ 11, hay dos bucles sobre todos los elementos (rango basado para y para cada uno). ¿Hay alguna razón para preferir uno sobre el otro o hay situaciones en las que uno encaja mejor?
for (auto& elem: container) {
// do something with elem
}
std::for_each(container.begin(), container.end(),
[](Elem& elem) {
// do something with elem
});
Mi idea sería que el primero es más simple y es similar a los bucles basados en rango en otros idiomas, mientras que el segundo también funciona para secuencias que no son contenedores completos y el segundo es más similar a otrosstd
-algoritmos.