В С++ 11 существует два цикла по всем элементам (диапазон основан для and for_each). Есть ли какая-то причина предпочитать одну над другой или есть ситуации, когда лучше подходит?
for (auto& elem: container) {
// do something with elem
}
std::for_each(container.begin(), container.end(),
[](Elem& elem) {
// do something with elem
});
Моя идея была бы в том, что первая проще и похожа на циклы, основанные на диапазонах, на других языках, а вторая также работает на последовательности, которые не являются полными контейнерами, а вторая больше похожа на другие std
-алгоритмы.