Namespaces
Variants

std::shared_ptr<T>:: operator[]

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
element_type & operator [ ] ( std:: ptrdiff_t idx ) const ;
(начиная с C++17)

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

Поведение не определено, если сохранённый указатель является нулевым или если 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

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

возвращает сохранённый указатель
(публичная функция-член)