最終更新日時:
が更新

履歴 編集

function
<forward_list>

std::forward_list::merge(C++11)

void merge(forward_list& x);                // (1)
void merge(forward_list&& x);               // (2)

template <class Compare>
void merge(forward_list& x, Compare comp);  // (3)

template <class Compare>
void merge(forward_list&& x, Compare comp); // (4)

概要

2つのforward_listオブジェクトを併合する。

要件

効果

2つのソート済み範囲[begin(), end())[x.begin(), x.end())をマージする。2つのforward_listオブジェクトの要素を*thisに併合し、xはマージ後に空となる。

マージ後、xの要素に対するイテレータおよび参照は無効にならない。

戻り値

なし

例外

比較操作が例外を投げない場合、この関数は例外を投げない。

計算量

高々distance(begin(), end()) + distance(x.begin(), x.end()) - 1回の比較

備考

#include <iostream>
#include <forward_list>
#include <utility>

int main()
{
  std::forward_list<int> a = {1, 3, 4};
  std::forward_list<int> b = {2, 5, 6};

  a.merge(std::move(b));

  for (int x : a) {
    std::cout << x << std::endl;
  }
}

出力

1
2
3
4
5
6

バージョン

言語

  • C++11

処理系

  • Clang: ??
  • GCC:
  • GCC, C++11 mode: 4.7.0(&&バージョンのみ実装されている)
  • ICC: ??
  • Visual C++:, 10.0, 11.0, 12.0, 14.0, 14.1
    • 10.0は、&バージョン(1)と(3)のみ実装されている。

参照