std::shared_ptr<T>:: operator[]
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Modifiers | ||||
| Observers | ||||
|
shared_ptr::operator[]
(C++17)
|
||||
|
(
until C++20*
)
|
||||
|
(C++26)
|
||||
|
(C++26)
|
||||
| Non-member functions | ||||
|
(until C++20)
(until C++20)
(until C++20)
(until C++20)
(until C++20)
(C++20)
|
||||
|
functions
(
until C++26*
)
|
||||
| Helper classes | ||||
|
(C++20)
|
||||
| Deduction guides (C++17) |
|
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) |