Namespaces
Variants

std::flat_multiset<Key,Compare,KeyContainer>:: insert

From cppreference.net
iterator insert ( const value_type & value )
(1) (C++23以降)
iterator insert ( value_type && value ) ;
(2) (C++23以降)
iterator insert ( const_iterator pos, const value_type & value ) ;
(3) (C++23以降)
iterator insert ( const_iterator pos, value_type && value ) ;
(4) (C++23以降)
template < class InputIt >
void insert ( InputIt first, InputIt last ) ;
(5) (C++23以降)
template < class InputIt >
void insert ( std:: sorted_equivalent_t , InputIt first, InputIt last ) ;
(6) (C++23以降)
void insert ( std:: initializer_list < key_type > ilist ) ;
(7) (C++23以降)
void insert ( std:: sorted_equivalent_t s, std:: initializer_list < key_type > ilist ) ;
(8) (C++23以降)

コンテナに要素を挿入します。残りの同等な要素の順序は保持されます。

1) value を挿入します。コンテナに同等のキーを持つ要素がある場合、その範囲の上限に挿入します。次と等価です: return emplace ( value ) ;
2) value を挿入します。コンテナに同等のキーを持つ要素が存在する場合、その範囲の上限に挿入します。次と等価です: return emplace ( std :: move ( value ) ) ;
3) pos の直前の位置にできるだけ近い位置に value を挿入します。 return emplace_hint ( pos, value ) ; と等価です。
4) pos の直前の位置に可能な限り近い位置に value を挿入します。 return emplace_hint ( pos, std :: move ( value ) ) ; と等価です。
5) 範囲 [ first , last ) から要素を挿入します。以下の操作を順次実行するように動作します:
  1. c に対して、以下のように要素を追加します: c. insert ( c. end ( ) , first, last ) ;
  2. 新しく挿入された要素の範囲を compare を用いてソートします。
  3. 結果のソート済み範囲と既存の要素のソート済み範囲を単一のソート済み範囲にマージします。
インプレースマージ段階でメモリを割り当てる可能性があります。
6) 範囲 [ first , last ) から要素を挿入します。 insert ( first, last ) ; と同等です。
7) 初期化子リスト ilist から要素を挿入します。 insert ( ilist. begin ( ) , ilist. end ( ) ) ; と同等です。
8) 初期化リスト ilist から要素を挿入します。 insert ( s, ilist. begin ( ) , ilist. end ( ) ) ; と同等です。

目次

パラメータ

pos - 新しい要素が挿入される位置の前を指すイテレータ
value - 挿入する要素の値
first, last - 挿入する要素のソース範囲を定義するイテレータのペア range
ilist - 値の挿入元となる初期化子リスト
s - 入力シーケンスがソート済みであることを示す識別タグ( key_compare に関して)
型要件
-
InputIt LegacyInputIterator の要件を満たさなければならない

戻り値

1-4) 挿入された要素へのイテレータ。
5-8) (なし)

例外

1-4) 基盤となるコンテナに依存します。
5-8) 例外安全性保証なし。

計算量

1-4) 線形。
5) N + M·log ( M ) 、ここで N は操作前の size() M std:: distance ( first, last ) です。
6) 線形。
7) N + M·log ( M ) 、ここで N は操作前の size() M ilist. size ( ) です。
8) 線形。

関連項目

要素をその場で構築する
(公開メンバ関数)
ヒントを使用して要素をその場で構築する
(公開メンバ関数)
引数から推論された型の std::insert_iterator を作成する
(関数テンプレート)