Range iteration
1234567891011121314 | #include <vector>
int main()
{
int arr[] = {1, 2, 3, 4, 5};
for (int value : arr) {
// Use value
}
std::vector<int> vec = {1, 2, 3, 4, 5};
for (int& ref : vec) {
// Modify ref
}
} |
This pattern is licensed under the CC0 Public Domain Dedication.
Intent
Iterate over a range of elements without using iterators or indices.
Description
The range-based for
loop provides a
simple syntax for iterating over elements of a range without using
iterators or indices. It supports arrays, types that provide
begin
and end
member functions, and types for which begin
and end
functions are found via argument-dependent
lookup.
Lines 6–8 demonstrate iterating over an array, arr
. In each iteration,
value
will have the value of each successive element of arr
.
Lines 11–13 similarly demonstrate iterating over a
std::vector
, vec
(any standard
container will also work). In this case, we have defined ref
as a
reference type, which will allow us to modify the objects stored
in vec
.