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
, that applies a function to all the elements in a range. C++11 brought language support for for each
that is actually called range-based for loops. The new C++17 standard provides several improvements to 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 a range-based for loops, we will use the following functions that return sequences of elements:
std::vector<int> getRates() { return std::vector<int> {1, 1, 2, 3, 5, 8, 13}; } std::multimap...