Using the subscript operator to access elements in a collection
Accessing elements of an array is a basic feature not just in C++ but in any programming language that supports arrays. The syntax is also the same across programming languages. In C++, the subscript operator used for this purpose, []
, can be overloaded to provide access to data in a class. Typically, this is the case for classes modelling containers. In this recipe, we’ll see how to leverage this operator and what changes C++23 brings.
How to do it…
To provide random access to elements in a container, overload the subscript operator as follows:
- For one-dimensional containers, you can overload the subscript operator with one argument, regardless of the version of the standard:
template <typename T>
struct some_buffer
{
some_buffer(size_t const size):data(size)
{}
size_t size() const { return data.size(); }
T const& operator[](size_t const index) const
{
if(index >= data...