最終更新日時(UTC):
が更新

履歴 編集

function template
<list>

std::list::emplace_back(C++11)

template <class... Args>
void emplace_back(Args&&... args);          // C++14 まで

template <class... Args>
reference emplace_back(Args&&... args);     // C++17 から

概要

直接構築で新たな要素を末尾に追加する。

この関数の引数 args... は、要素型 value_type のコンストラクタ引数である。当関数の内部で要素型 value_type のコンストラクタを呼び出し、追加する要素を構築する。

要件

value_type は、コンテナに対して args から EmplaceConstructible であること。

戻り値

  • C++14 まで:なし
  • C++17 から:構築した要素への参照

計算量

定数時間

備考

  • この関数の呼び出し後も、全てのイテレータ、および、参照は無効化されない。
  • 操作中に例外が発生した場合、副作用は発生しない。

#include <iostream>
#include <list>
#include <utility>
#include <string>

int main()
{
  std::list<std::pair<int, std::string>> ls;

  ls.push_back(std::make_pair(3, std::string("hello")));
  ls.emplace_back(1, std::string("world"));

  for (const auto& x : ls) {
    std::cout << x.first << ',' << x.second << std::endl;
  };
}

出力

3,hello
1,world

バージョン

言語

  • C++11

処理系

関連項目

名前 説明
emplace_front 先頭への直接構築による要素追加
push_front 先頭に要素を追加する
push_back 末尾に要素を追加する
emplace 要素の直接構築による挿入
insert 要素の挿入

参照