名前空間
変種
操作

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

From cppreference.com
 
 
 
 
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) 範囲 [firstlast) から要素を挿入します。これは以下の操作を逐次実行するのと同等です。
  1. c.insert(c.end(), first, last); のように、c に要素を追加します。
  2. compare に関して、新しく挿入された要素の範囲をソートします。
  3. 結果のソート済み範囲と、既存の要素のソート済み範囲をマージして、単一のソート済み範囲にします。
インプレースマージの段階でメモリを割り当てる可能性があります。
6) 範囲 [firstlast) から要素を挿入します。insert(first, last); と同等です。
7) 初期化子リスト ilist から要素を挿入します。insert(ilist.begin(), ilist.end()); と同等です。
8) 初期化子リスト ilist から要素を挿入します。insert(s, ilist.begin(), ilist.end()); と同等です。

目次

[編集] パラメータ

pos - 新しい要素が挿入される前の位置へのイテレータ
value - 挿入する要素の値
first, last - 挿入する要素のソース 範囲 を定義するイテレータのペア
ilist - 挿入する値の初期化子リスト
s - 入力シーケンスが(key_compare に関して)ソートされていることを示す曖昧さ回避タグ
型要件
-
InputItLegacyInputIterator の要件を満たす必要があります。

[編集] 戻り値

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

[編集] 例外

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

[編集] 計算量

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

[編集]

[編集] 関連項目

要素を直接構築する
(公開メンバ関数) [編集]
ヒントを使用して要素を直接構築する
(公開メンバ関数) [編集]
引数から推論された型の std::insert_iterator を作成する
(関数テンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)