Using range-based for loops to iterate on a range
Many programming languages support a variant of a for
loop called for each
; that is, repeating a group of statements over the elements of a collection. C++ did not have core language support for this until C++11. The closest feature was the general-purpose algorithm from the standard library called std::for_each
, which applies a function to all the elements in a range. C++11 brought language support for for each
that's actually called range-based for loops. The new C++17 standard provides several improvements for the original language feature.
Getting ready
In C++11, a range-based for loop has the following general syntax:
for ( range_declaration : range_expression ) loop_statement
To exemplify the various ways of using range-based for loops, we will use the following functions, which return sequences of elements:
std::vector<int> getRates()
{
return std::vector<int> {1, 1, 2, 3, 5, 8, 13};
...