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