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() and end() 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

Questions & Answers

Answers are generated by AI models and may not have been reviewed. Be mindful when running any code on your device.

How to Use Iterators in C++
How do I use iterators with different containers in C++?
Using Range-Based For Loops in C++
How do I use range-based for loops in C++?
Passing by Reference in Range-Based For Loops
Why should I pass by reference in range-based for loops in C++?
Understanding Range Categories in C++
What are the different categories of ranges in C++?
Using Concepts in C++
How do I use concepts in C++ to check if a type is a range?
Ask Your Own Question
Get an immediate answer to your specific question.