std::span::operator[](3)

NAME
std::span::operator[] - std::span::operator[]

Synopsis
   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
// Run this code
 #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
   at access specified element with bounds checking
   (C++26) (public member function)
   data direct access to the underlying contiguous storage
                     (public member function)
   size returns the number of elements
                     (public member function)
   as_bytes converts a span into a view of its underlying bytes
   as_writable_bytes (function template)
   (C++20)