for (const auto& elem : container) {
// Observing the elem's
cout << elem; // elem == *it
}
for (auto elem : container) { /* By value - Copy of elem inside for-loop */ }
for (auto&& elem : container) { /* Modifying the elem's, will work for proxy-iterators */ }
double epsilon = 0.0001
std::transform(v.begin(), v.end(), v.begin(),
[epsilon] (double d) -> double {
if (d < epsilon) { return 0; }
else { return d; }
});
// Captures: [&epsilon] OR [&, epsilon] OR [=, &epsilon]
auto factorial = [] (uint32 n) -> {
uint32 result = n;
for (int i = n-1; i > 0; i--) {
result *= i;
}
return result;
};
uint32 fac = factorial(5);