std::shared_ptr<T>::operator[]
From cppreference.com
element_type& operator[]( std::ptrdiff_t idx ) const;
|
(since C++17) | |
Index into the array pointed to by the stored pointer.
If the stored pointer is null, the behavior is undefined.
|
If |
(until C++26) |
|
If
|
(since C++26) |
Parameters
| idx | - | the array index |
Return value
A reference to the idx-th element of the array, i.e., get()[idx].
Exceptions
Throws nothing.
Remarks
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.
Example
Run this code
#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
