element_type& operator[]( std::ptrdiff_t idx ) const; | (since C++17) |
Index into the array pointed to by the stored pointer.
The behavior is undefined if the stored pointer is null or if idx
is negative.
If T
(the template parameter of shared_ptr
) is an array type U[N]
, idx
must be less than N
, otherwise the behavior is undefined.
idx | - | the array index |
A reference to the idx
-th element of the array, i.e., get()[idx]
.
Throws nothing.
When T
is not an array type, it is unspecified whether this function is declared. If the function is declared, it is unspecified what its return type is, except that the declaration (although not necessarily the definition) of the function is guaranteed to be legal.
#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'; }
Output:
0 1 2 3 4 5 6 7 8 9
returns the stored pointer (public member function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/memory/shared_ptr/operator_at