En C++11, hay dos bucles en todos los elementos (rango basado en y para_cada). ¿Hay alguna razón para preferir una sobre otra o hay situaciones en las que uno se ajusta mejor?Uso estándar preferido: rango basado en o std :: for_each
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 la primera es más simple y es similar a variar bucles basados en otros idiomas, mientras que la segunda también trabaja para las secuencias que no son contenedores completos y el segundo es más similar a otros std
-algorithms.
Tengo curiosidad acerca de la manera de uso * * gama-basa para, así que por favor ver realmente mi pregunta correctamente http://stackoverflow.com/questions/9994789/proper-style-for-declaration-in -range-based-for – Potatoswatter
Agregué un simple ejemplo 'for_each'. Pensé que había visto un mensaje pidiéndome uno, pero ya no estoy tan seguro ... – juanchopanza
@juanchopanza: Pedí uno basado en el lambda, pero lo eliminé porque en el momento en que publiqué el comentario, lee el comentario de Potatoswatter de que consultar a un lambda no fue posible. Aún así, es un buen ejemplo de dónde podría ser mejor para cada uno. – stefaanv