C++で遊ぼうスマートフォン用の表示で見るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。C++で遊ぼう2014-04-15mapのemplaceC++C++11標準ライブラリのコンテナには、emplace()、emplace_back()といったメンバ関数が追加されました。これらの関数は、コンテナの要素型のコンストラクタ引数を受け取り、要素型のオブジェクトをemplace()/emplace_back()の内部で一度だけ作る、という効率化の役割を果たしてくれます。std::vectorのemplace_back()なら、以下のように、要素型Xのコンストラクタ引数を渡すという、シンプルな使い方ができます。3);しかし、std::mapのemplace()は、使うのがちょっと難しいです。mapはキーと値の組を扱うので、要素を追加する際、それぞれのコンストラクタ引数を受け取ろうとすると、引数の区切りがどこなのかがわからないのです。6);引数の区切りを明確にするためには、それぞれの引数をタプルにパックして転送する必要があります。結果として、std::mapのemplace()は以下のように使います。T3&&...>のような、右辺値参照のタプルができます。std::pairのコンストラクタに、そのようなタプルを展開して各要素を構築するためのオーバーロードが用意されているので、それにおまかせすることになります。Librariesコントリビュータ。boostjp/cpprefjpサイトコアメンバ。くわしい情報は、こちらを参照してください:http://faithandbrave.github.ioお仕事の依頼も受け付けております。Blog|ブログを報告する。