std::span<T,Extent>:: operator[]

From cppreference.com
constexpr reference operator [ ] ( size_type idx ) const ;
(since C++20)

Returns a reference to the idx th element of the sequence. The behavior is undefined if idx is out of range (i.e., if it is greater than or equal to size() ).

Parameters

idx - the index of the element to access

Return value

A reference to the idx th element of the sequence, i.e., data ( ) [ idx ] .

Exceptions

Throws nothing.

Example

#include <cstddef>
#include <iostream>
#include <span>
#include <utility>
 
void reverse(std::span<int> span)
{
    for (std::size_t i = 0, j = std::size(span); i < j; ++i)
    {
        --j;
        std::swap(span[i], span[j]);
    }
}
 
void print(std::span<const int> const span)
{
    for (int element : span)
        std::cout << element << ' ';
    std::cout << '\n';
}
 
int main()
{
    int data[]{1, 2, 3, 4, 5};
    print(data);
    reverse(data);
    print(data);
}

Output:

1 2 3 4 5
5 4 3 2 1

See also

(C++26)
access specified element with bounds checking
(public member function)
direct access to the underlying contiguous storage
(public member function)
returns the number of elements
(public member function)
converts a span into a view of its underlying bytes
(function template)