What is a Range in C++?
What is a range in C++ and how is it different from an iterator?
A range in C++ is a concept introduced in C++20, representing a sequence of elements with a beginning and an end, defined by begin()
and end()
methods. The main difference between iterators and ranges are:
- Iterators: Provide a way to traverse through elements in a container. They act as pointers to elements.
- Ranges: Encompass the entire sequence and provide the
begin()
andend()
methods to obtain iterators.
Here's an example:
#include <vector>
#include <iostream>
int main() {
std::vector<int> Vector{1, 2, 3};
// Range-based for loop
for (int x : Vector) {
std::cout << x << ", ";
}
}
1, 2, 3,
In this example, Vector
is a range, and the range-based for loop uses it to iterate over the elements.
Iterators and Ranges
This lesson offers an in-depth look at iterators and ranges, emphasizing their roles in container traversal