Namespaces
Variants

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

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

Devuelve una referencia al idx th elemento de la secuencia.

Si idx < size ( ) es false , el comportamiento es indefinido.

(hasta C++26)

Si idx < size ( ) es false :

  • Si la implementación está reforzada , ocurre una violación de contrato . Además, si el manejador de violación de contrato retorna bajo semántica de evaluación "observar", el comportamiento es indefinido.
  • Si la implementación no está reforzada, el comportamiento es indefinido.
(desde C++26)

Contenidos

Parámetros

idx - el índice del elemento a acceder

Valor de retorno

data ( ) [ idx ]

Excepciones

No lanza nada.

Ejemplo

#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(const std::span<const int> 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);
}

Salida:

1 2 3 4 5
5 4 3 2 1

Véase también

(C++26)
accede al elemento especificado con verificación de límites
(función miembro pública)
acceso directo al almacenamiento contiguo subyacente
(función miembro pública)
devuelve el número de elementos
(función miembro pública)
convierte un span en una vista de sus bytes subyacentes
(plantilla de función)