Spec-Zone.ru › C++

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

См. также

get
возвращает сохраненный указатель
(публичный метод)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/memory/shared_ptr/operator_at

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API