在线文档教程
C++
容器 | Containers

std::unordered_multiset::insert

STD:无序[医]多组::插入

iterator insert( const value_type& value (1)(since C++11)
iterator insert( value_type&& value (2)(since C++11)
iterator insert( const_iterator hint, const value_type& value (3)(since C++11)
iterator insert( const_iterator hint, value_type&& value (4)(since C++11)
template< class InputIt > void insert( InputIt first, InputIt last (5)(since C++11)
void insert( std::initializer_list<value_type> ilist (6)(since C++11)
iterator insert(node_type&& nh(7)(since C++17)
iterator insert(const_iterator hint, node_type&& nh(8)(since C++17)

将元素%28S%29插入容器中。

1-2%29次插入value...

3-4%29次插入value,使用hint作为一个不具约束力的建议,搜索应该从哪里开始。

5%29插入范围内的元素[first, last)...

6%29从初始化程序列表插入元素ilist...

7%29nh是空的节点手柄什么都不做。否则,插入nh并返回指向插入元素的迭代器。如果nh不是空的get_allocator() != nh.get_allocator()...

8%29nh是空的节点手柄,什么也不做,并返回结束迭代器。否则,插入nh,并返回指向元素的迭代器,该元素的键等价于nh.key()元素被插入到hint如果nh不是空的get_allocator() != nh.get_allocator()...

如果由于插入而发生重散列,则所有迭代器都将失效。否则迭代器不会受到影响。引用不失效。只有当新元素数大于max_load_factor()*bucket_count()如果插入成功,则在节点句柄中保存时获得的元素的指针和引用无效,并且在提取该元素之前获得的指针和引用变得有效。%28自C++17%29。

参数

hint-iterator, used as a suggestion as to where to insert the content
value-element value to insert
first, last-range of elements to insert
ilist-initializer list to insert the values from
nh-a compatible node handle

类型要求

-输入必须符合输入器的要求。

返回值

1-4%29向插入元素返回迭代器。

5-6%29%280%29

7,8%29末端迭代器nh为空,否则迭代器指向插入的元素。

例外

1-4%29如果任何操作引发异常,则插入无效。

复杂性

1-4%29例平均病例:O(1),最坏的情况O(size())

5-6%29例平均病例:O(N),其中N是要插入的元素数。更糟的情况:O(N*size()+N)

7-8%29例平均病例:O(1),最坏的情况O(size())

另见

emplaceconstructs element in-place (public member function)
emplace_hintconstructs elements in-place using a hint (public member function)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/container/unorder[医]多集/插入