Spec-Zone.ru › C++

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

element_type& operator[]( std::ptrdiff_t idx ) const;
(начиная с C++17)
(constexpr начиная с C++26)

Возвращает ссылку на элемент в указанной позиции idx массива, на который указывает сохранённый указатель.

Если T не является типом массива, не указано, объявлен ли operator[]. Если он объявлен, не указан его тип возвращаемого значения, за исключением того, что объявление гарантированно является корректным.

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

Если idx отрицательно или T является типом массива U[N] и idx больше или равно N, поведение не определено.

(до C++26)

Если idx отрицательно или T является типом массива U[N] и idx больше или равно N:

  • Если реализация является защищённой, происходит нарушение контракта.
  • Если реализация не является защищённой, поведение не определено.
(начиная с C++26)

Параметры

idx - индекс массива

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

get()[idx]

Исключения

Ничего не выбрасывает.

Пример

#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/cpp/memory/shared_ptr/operator_at

Spec-Zone.ru

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