Namespaces
Variants

std::shared_ptr<T>:: operator[]

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
element_type & operator [ ] ( std:: ptrdiff_t idx ) const ;
(desde C++17)

Accede al índice del array apuntado por el puntero almacenado.

El comportamiento es indefinido si el puntero almacenado es nulo o si idx es negativo.

Si T (el parámetro de plantilla de shared_ptr ) es un tipo de arreglo U[N] , idx debe ser menor que N , de lo contrario el comportamiento es indefinido.

Contenidos

Parámetros

idx - el índice del array

Valor de retorno

Una referencia al idx -ésimo elemento del array, es decir, get ( ) [ idx ] .

Excepciones

No lanza nada.

Observaciones

Cuando T no es un tipo array, no está especificado si esta función está declarada. Si la función está declarada, no está especificado cuál es su tipo de retorno, excepto que la declaración (aunque no necesariamente la definición) de la función está garantizada como legal.

Ejemplo

#include <cstddef>
#include <iostream>
#include <memory>
int main()
{
    const std::size_t arr_size = 10;
    std::shared_ptr<int[]> pis(new int[10]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
    for (std::size_t i = 0; i < arr_size; ++i)
        std::cout << pis[i] << ' ';
    std::cout << '\n';
}

Salida:

0 1 2 3 4 5 6 7 8 9

Véase también

devuelve el puntero almacenado
(función miembro pública)