void merge(list& x); // (1)
void merge(list&& x); // (2) C++11
template <class Compare> void merge(list& x, Compare comp); // (3)
template <class Compare> void merge(list&& x, Compare comp); // (4) C++11
概要
2つのlist
オブジェクトを併合する。
要件
comp
が狭義の弱順序として定義されていること。*this
とx
がその順序でソートされていること。
効果
x
を*this
にマージする。2つのlist
オブジェクトの要素を*this
に併合し、x
はマージ後に空となる。
マージ後、x
の要素に対するイテレータおよび参照は無効にならない。
戻り値
なし
例外
比較操作が例外を投げない場合、この関数は例外を投げない。
計算量
高々distance(begin
(), end()) + distance(x.begin(), x.end()) - 1
回の比較
備考
- この操作は安定である。
- 移動先と移動元のアロケータが等値でない場合(
get_allocator() != x.get_allocator()
の場合)、この関数呼び出しの効果は未定義である。
例
出力
1
2
3
4
5
6