std::shared_ptr<T>::operator[]
element_type& operator[]( std::ptrdiff_t idx ) const; | (since C++17) |
Индексация массива, на который указывает сохраненный указатель.
Поведение не определено, если сохраненный указатель равен null или если idx отрицательно.
Если T (шаблонный параметр shared_ptr) является типом массива U[N], то idx должно быть меньше N, в противном случае поведение не определено.
Параметры
| idx | - | индекс элемента массива |
Возвращаемое значение
Ссылка на idx-й элемент массива, т.е. get()[idx].
Исключения
Не выбрасывает никаких исключений.
Примечания
Если T не является типом массива, то не определено, объявлена ли эта функция. Если функция объявлена, то тип её возвращаемого значения не определён, за исключением того, что объявление (хотя и не обязательно определение) функции гарантированно допустимо.
Пример
#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';
}Вывод:
0 1 2 3 4 5 6 7 8 9
См. также
| возвращает сохраненный указатель (публичный метод) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/memory/shared_ptr/operator_at