名前空間
変種
操作

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

From cppreference.com
< cpp‎ | memory‎ | shared ptr
 
 
メモリ管理ライブラリ
(説明用*)
未初期化メモリのアルゴリズム
(C++17)
(C++17)
(C++17)
制約付き未初期化
メモリアルゴリズム
Cライブラリ

アロケータ
メモリリソース
ガベージコレクションのサポート
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
未初期化ストレージ
(C++20まで*)
(C++20まで*)
明示的な生存期間管理
 
 
element_type& operator[]( std::ptrdiff_t idx ) const;
(C++17以降)

格納されているポインタが指す配列の要素にアクセスします。

格納されているポインタがnullである場合、またはidxが負の場合、動作は未定義です。

Tshared_ptrのテンプレートパラメータ)が配列型U[N]である場合、idxN未満でなければなりません。そうでない場合、動作は未定義です。

目次

[編集] パラメータ

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

[編集] 関連項目

格納されたポインターを返す
(public メンバー関数) [編集]
English 日本語 中文(简体) 中文(繁體)