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

参见

返回存储的指针
(公开成员函数)