std::shared_ptr<T>:: operator[]
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Modifiers | ||||
| Observers | ||||
|
shared_ptr::operator[]
(C++17)
|
||||
|
(
until C++20*
)
|
||||
|
(C++26)
|
||||
|
(C++26)
|
||||
| Non-member functions | ||||
|
(until C++20)
(until C++20)
(until C++20)
(until C++20)
(until C++20)
(C++20)
|
||||
|
functions
(
until C++26*
)
|
||||
| Helper classes | ||||
|
(C++20)
|
||||
| Deduction guides (C++17) |
|
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
参见
|
返回存储的指针
(公开成员函数) |