名稱空間
變體
操作

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

來自 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) 插入 value 到儘可能接近 pos 之前的位置。等價於 return emplace_hint(pos, value);
4) 插入 value 到儘可能接近 pos 之前的位置。等價於 return emplace_hint(pos, std::move(value));
5) 插入範圍 [firstlast) 中的元素,如同依次執行以下操作:
  1. 將元素新增到 c,如同透過 c.insert(c.end(), first, last);
  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
型別要求
-
InputIt 必須滿足 LegacyInputIterator 的要求。

[編輯] 返回值

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
(函式模板) [編輯]