std::shared_ptr<T>::operator[] - cppreference.com
来自cppreference.com
element_type& operator[]( std::ptrdiff_t idx ) const; |
(C++17 起) (C++26 起为 constexpr) |
|
返回位于存储的指针所指向的数组的指定位置 idx 的元素的引用。
当 T 不是数组类型时,未指定是否会声明 operator[]。即使声明了它,它的返回类型也是未指定的,但此时保证该函数声明良构。
如果存储的指针为空,那么行为未定义。
|
如果 |
(C++26 前) |
|
如果 |
(C++26 起) |
参数
返回值
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'; }
输出: