unordered_multimap::insert

将一个元素或元素范围插入到 unordered_multimap 中。

// (1) single element pair<iterator, bool> insert(     const value_type& Val );   // (2) single element, perfect forwarded template<class ValTy> pair<iterator, bool> insert(     ValTy&& Val );  // (3) single element with hint iterator insert(     const_iterator Where,     const value_type& Val );   // (4) single element, perfect forwarded, with hint template<class ValTy> iterator insert(     const_iterator Where,     ValTy&& Val );  // (5) range  template<class InputIterator>  void insert(     InputIterator First,     InputIterator Last );   // (6) initializer list void insert(     initializer_list<value_type> IList ); 

参数

参数

描述

Val

要插入到 unordered_multimap 中的元素的值。

Where

开始搜索正确插入点的位置。

ValTy

指定 unordered_multimap 可用于构造 value_type 元素的参数类型并将 Val 作为参数完美转发的模板参数。

First

要复制的第一个元素的位置。

Last

要复制的最后一个元素以外的位置。

InputIterator

满足输入迭代器要求的模板函数参数,该输入迭代器指向可用于构造 value_type 对象的类型的元素。

IList

从中复制元素的 initializer_list

返回值

单个元素插入成员函数 (1) 和 (2) 返回迭代器,该迭代器指向将新元素插入到 unordered_multimap 中的位置。

附带提示的单个元素成员函数 (3) 和 (4) 返回迭代器,该迭代器指向将新元素插入到 unordered_multimap 中的位置。

备注

指针或引用不会因为此函数而失效,但是它可能会使所有指向容器的迭代器都失效。

在只插入单个元素的过程中,如果引发异常,但是异常并未在容器的哈希函数中发生,则不会修改该容器的状态。 如果在哈希函数中引发异常,则未定义此结果。 在插入多个元素的过程中,如果引发异常,则会使容器处于未指定但有效的状态。

容器的 value_type 是属于该容器的 typedef;对于映射,map<K, V>::value_type 是 pair<const K, V>。 元素的值是一个有序对,其中第一个组件相当于键值,第二个组件相当于该元素的数据值。

范围成员函数 (5) 将元素值序列插入到 unordered_multimap 中,它对应于迭代器在范围 [First, Last) 中所处理的每一个元素;因此,不会插入 Last。 容器成员函数 end() 是指容器中最后一个元素之后的位置,例如,m.insert(v.begin(), v.end()); 语句会将 v 的所有元素插入到 m 中。

初始值设定项列表成员函数 (6) 使用 initializer_list 将元素复制到 unordered_multimap 中。

有关就地构造的元素的插入(即不会执行复制或移动操作),请参阅 unordered_multimap::emplaceunordered_multimap::emplace_hint

有关代码示例,请参阅 multiset::insert

要求

标头:<unordered_map>

命名空间: std

请参见

参考

<unordered_map>

unordered_multimap 类

标准模板库