◐ Shell
clean mode source ↗

std::shared_ptr::operator[] — cppreference.com

Материал из cppreference.com

<tbody> </tbody>

element_type& operator[]( std::ptrdiff_t idx ) const;

(начиная с C++17)

Индекс в массиве, на который указывает сохранённый указатель.

Поведение не определено, если сохранённый указатель имеет значение null или если idx имеет отрицательное значение.

Если T (параметр шаблона shared_ptr) является типом массива U[N], idx должен быть меньше N, иначе поведение не определено.

Параметры

Возвращаемое значение

Ссылка на idx-й элемент массива, т.е. get()[idx]

Исключения

Ничего не генерирует.

Примечание

Когда T не является типом массива, не указано, объявлена ли эта функция. Если функция объявлена, то не указано, какой у неё тип возвращаемого значения, за исключением того, что объявление (хотя и не обязательно определение) функции гарантированно будет допустимым.

Пример

#include <cstddef>
#include <memory>
#include <iostream>
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';
}

Вывод:

Смотрите также

возвращает хранимый указатель
(public функция-элемент) [править]