MSVCRT std::vector 新しいページはコチラ
提供: yonewiki
(→メンバ関数 emplace_back) |
(→メンバ関数 emplace_back) |
||
99行: | 99行: | ||
※C++17以降は2つ目に書いたように TypeTemplate& のような挿入したデータへの参照を返却され、受け取ることができます。 | ※C++17以降は2つ目に書いたように TypeTemplate& のような挿入したデータへの参照を返却され、受け取ることができます。 | ||
− | + | ※似た動作をする関数にpush_backという関数があります。emplace_buckでは完全転送という処理が行われるためコンストラクタの呼び出しが少なく、処理速度が向上するという利点があります。大量のTypeTemplate型のコンストラクタの引数にガチするデータでコンストラクタの処理が複雑の場合にvector型に格納するときには、良いと思います。大量ですよ。大量。最初の1回の処理には時間がかかるので、大量にvector型を使って、小さなオブジェクトを大量に作る場合もemplace_pushがいいみたい。じゃpush_backって利点がないんじゃ?ふむ、自分もそう思います。たとえばconst TypeTemplate&のように定義しているものを引数にするときはpush_backがそのまま使えて便利です。それくらいかな? | |