MSVCRT std::vector 新しいページはコチラ
提供: yonewiki
(→メンバ関数 data) |
|||
46行: | 46行: | ||
==='''公開 Public'''=== | ==='''公開 Public'''=== | ||
+ | ===='''メンバ関数 data'''==== | ||
+ | vector<TypeTmplate> obj;とした場合 | ||
+ | |||
+ | *<span style = "background:linear-gradient(transparent 75%, #cab8d9 75%); font-weight:bold; "><span style="color:deeppink;"> TypeTemplate*</span> obj.<span style="color:blue;">data</span>() <span style="color:deeppink;">noexcept</span>;</span> | ||
+ | *<span style = "background:linear-gradient(transparent 75%, #cab8d9 75%); font-weight:bold; "><span style="color:deeppink;">const TypeTemplate*</span> obj.<span style="color:blue;">data</span>() <span style="color:deeppink;">const noexcept</span>;</span> | ||
+ | |||
+ | TypeTemplateと記載された部分のvectorを生成するときに指定した型で、 vectorに取り込まれた先頭のデータを返します。データが無くても動作しますが、dataがあるかないか分からないパターンが考えられる場合、受け取った側でdataが有ったか無かったかを確認する必要があります。 | ||
+ | |||
+ | |||
+ | 返される値がポインタ型なので、取り込まれたデータが指定した型のポインタ型である場合は受け取る変数は、更にそのポインタである必要があるため、必ず、TypeTempateで指定した型より*が一つ多い型で受け取ることになります。 | ||
+ | |||
+ | |||
+ | このメンバ関数は、noexceptだ!というキーワードの指定がありますが、これは明示的にこの関数は例外をスローしないことを示しています。これもC++11からの比較的新しい技術です。noexcept(関数名)でその関数がnoexceptかどうかを判定したbool値が取得できます。例外を受け取ることはないので、例外処理を構築する必要が無いことを示しています。このような関数は動作も軽くなることを例外のために準備する処理がなく、それでいて、その処理が安定して動作することを示しています。この関数のように、データを返すだけの単純な関数によく指定されるものです。普段から例外処理を記述しまくっている人でなければ、あんまり気にする必要はないですね。 | ||
+ | |||
===='''メンバ関数 Insert'''==== | ===='''メンバ関数 Insert'''==== | ||
vector<TypeTmplate> obj;とした場合 | vector<TypeTmplate> obj;とした場合 |