unordered_multiset Class

模板类描述对象控件类型 const Key的元素更改某个长的序列。 该序列由哈希函数弱排序,分区序列到顺序的中设置子序列调用存储桶。 在每个存储桶中比较函数确定中的任何一个是否对组件具有等效排序。 每个元素用作排序关键字和值。 序列表示为允许查找、任意元素插入和删除与许多操作可元素数依赖于序列的方法 (常数时),则为; 至少在所有存储桶是大致相等的长度时。 在最坏情况下,那么,当所有元素都一个存储桶时,操作的数量与元素数成比例在序列 (线性时间)。 而且,请插入元素不会使迭代器,并且,移除元素无效点在被移除的元素的那些迭代器。

template<class Key,
    class Hash = std::hash<Key>,
    class Pred = std::equal_to<Key>,
    class Alloc = std::allocator<Key> >
    class unordered_multiset;

参数

Parameter

说明

Key

关键类型。

Hash

哈希函数对象类型。

Pred

相等比较函数对象类型。

Alloc

分配器类。

成员

类型定义

说明

unordered_multiset::allocator_type

一个分配器的类型管理存储的。

unordered_multiset::const_iterator

常数的迭代器类型的控制序列的。

unordered_multiset::const_local_iterator

常数的存储桶迭代器类型的控制序列的。

unordered_multiset::const_pointer

常数的指针类型的元素。

unordered_multiset::const_reference

常量的类型对元素。

unordered_multiset::difference_type

带符号距离的类型两个元素间的。

unordered_multiset::hasher

哈希函数的类型。

unordered_multiset::iterator

一个迭代器类型的控制序列的。

unordered_multiset::key_equal

比较函数的类型。

unordered_multiset::key_type

一个排序的键的类型。

unordered_multiset::local_iterator

一个存储桶迭代器类型的控制序列的。

unordered_multiset::pointer

指针的类型的元素。

unordered_multiset::reference

引用的类型的元素。

unordered_multiset::size_type

无符号距离的类型两个元素间的。

unordered_multiset::value_type

元素的类型。

成员函数

说明

unordered_multiset::begin

指定受控序列的开头。

unordered_multiset::bucket

获取键值的存储桶数字。

unordered_multiset::bucket_count

获取存储桶的数目。

unordered_multiset::bucket_size

获取存储桶大小。

unordered_multiset::cbegin

指定受控序列的开头。

unordered_multiset::cend

指定受控序列的末尾。

unordered_multiset::clear

移除所有元素。

unordered_multiset::count

看到匹配指定的键的元素的数目。

unordered_multiset::emplace

添加就地构造一个元素。

unordered_multiset::emplace_hint

添加一个元素就地构造,将提示。

unordered_multiset::empty

测试组件是否不存在。

unordered_multiset::end

指定受控序列的末尾。

unordered_multiset::equal_range

查找与指定的键的范围。

unordered_multiset::erase

移除指定位置处的元素。

unordered_multiset::find

查找与指定键匹配的元素。

unordered_multiset::get_allocator

获取存储的分配器对象。

unordered_multiset::hash_function

获取存储的哈希函数对象。

unordered_multiset::insert

添加元素。

unordered_multiset::key_eq

获取存储的比较函数对象。

unordered_multiset::load_factor

计算平均元素每个存储桶。

unordered_multiset::max_bucket_count

获取存储桶的最大数目。

unordered_multiset::max_load_factor

获取或设置最大元素每个存储桶。

unordered_multiset::max_size

获取控件序列的最大大小。

unordered_multiset::rehash

重新生成哈希表。

unordered_multiset::size

计算元素的数量。

unordered_multiset::swap

交换两个容器的内容。

unordered_multiset::unordered_multiset

构造容器对象。

运算符

说明

unordered_multiset::operator=

复制哈希表。

备注

它通过调用两个单元的对象控制的对象对该序列,类型 unordered_multiset::key_equal 比较函数对象和类型 unordered_multiset::hasher哈希函数对象。 您访问第一次调用成员函数存储的对象 unordered_multiset::key_eq();您访问第二通过调用成员函数存储的对象 unordered_multiset::hash_function()。 具体而言,因此,只有当两个参数值具有等效排序,对于类型 Key的任何值 X 和 Y ,调用 key_eq()(X, Y) 返回 true;调用 hash_function()(keyval) 给定类型 size_t的值的分布。 不同于模板类 unordered_set Class,模板类 unordered_multiset 对象不保证 key_eq()(X, Y) 为控件序列的任何两个元素始终为 false。 (键不需要是唯一的。)

对象还存储一个最大负载因素,指定元素的最大值所需数量平均每个存储桶。 如果插入元素仅 unordered_multiset::load_factor() 超过最大负载因素,容器增加存储桶数并重新生成哈希表根据需要。

组件实际顺序在控件序列的取决于哈希函数、比较函数、插入序列,最大负载因子和存储桶的当前项数。 您通常无法预测元素顺序在控件的序列。 ,但是,您可以始终是确定元素的任何子集具有等效排序是相邻的在控件序列。

对象分配并通过类型的控件 unordered_multiset::allocator_type一个单元的分配器对象序列中未使用记忆字段。 此类分配器对象必须有外部接口和模板类同名 allocator对象。 请注意存储的分配器对象不会复制,当容器对象分配。

要求

**标题:**unordered_set

命名空间: std

请参见

参考

<unordered_set>

unordered_multiset Class

其他资源

unordered_set 成员