SGI

多哈希关联式容器

类别:容器 组件类型:概念

说明

多哈希关联式容器既是 哈希关联式容器,也是 多关联式容器。也就是说,它是一个具有这样属性的 哈希关联式容器:容器中的任意数量的元素都可以具有相同的键

细化

哈希关联式容器, 多关联式容器

关联类型

无,但 哈希关联式容器多关联式容器 要求中描述的类型除外。

符号

X 哈希关联式容器模型的类型
a 类型对象X
t 类型对象X::value_type
k 类型对象X::key_type
p, q 类型对象X::iterator
n 类型对象X::size_type
h 类型对象X::hasher
c 类型对象X::key_equal

定义

有效表达式

除了 哈希关联式容器多关联式容器 中定义的表达式外,还必须有以下表达式有效。
名称 表达式 类型要求 返回类型
范围构造函数
X(i, j)
X a(i, j);
ij输入迭代器,其值类型可转换为T [1]. X
带存储桶数量的范围构造函数
X(i, j, n)
X a(i, j, n);
ij输入迭代器,其值类型可转换为T [1]. X
带哈希函数的范围构造函数
X(i, j, n, h)
X a(i, j, n, h);
ij输入迭代器,其值类型可转换为T [1]. X
带键相等的范围构造函数
X(i, j, n, h, k)
X a(i, j, n, h, k);
ij输入迭代器,其值类型可转换为T [1]. X

表达式语义

名称 表达式 先决条件 语义 后置条件
范围构造函数
X(i, j)
X a(i, j);
[i,j)是有效的范围。 创建一个关联式容器,其中包含范围中的所有元素[i,j),使用hasher()作为哈希函数,使用key_equal()作为键相等函数。 size()等于ij. 存储桶数量是未指定默认值。哈希函数是hasher(),键相等函数是key_equal().
带存储桶数量的范围构造函数
X(i, j, n)
X a(i, j, n);
[i,j)是有效的范围。 创建一个关联式容器,其中包含范围中的所有元素[i,j),至少使用n个存储桶,并且使用hasher()作为哈希函数,使用key_equal()作为键相等函数。 size()等于ij. 存储桶数量大于或等于n. 哈希函数是hasher(),键相等函数是key_equal().
带哈希函数的范围构造函数
X(i, j, n, h)
X a(i, j, n, h);
[i,j)是有效的范围。 创建一个关联式容器,其中包含范围中的所有元素[i,j),至少使用n个存储桶,并且使用h作为哈希函数,使用key_equal()作为键相等函数。 size()等于ij. 存储桶数量大于或等于n. 哈希函数是h,键相等函数是key_equal().
带键相等的范围构造函数
X(i, j, n, h, k)
X a(i, j, n, h, k);
[i,j)是有效的范围。 创建一个关联式容器,其中包含范围中的所有元素[i,j),至少使用n个存储桶,并且使用h作为哈希函数,使用k作为键相等函数。 size()等于ij. 存储桶数量大于或等于n. 哈希函数是h,键相等函数是k.

复杂度保证

范围构造函数、带存储桶数量的范围构造函数、带哈希函数的范围构造函数以及带键相等的范围构造函数,它们在j - i.

中都是线性的

不变量

散列多重映射

[1]目前(1998 年初),并非所有编译器都支持“成员模板”。如果编译器支持成员模板,那么ij可能符合 输入迭代器 要求的任何类型。但是,如果你的编译器还不支持成员模板,那么ij必须属于const T*X::const_iterator.

另请参见

关联容器哈希关联容器唯一哈希关联容器排序关联容器
[Silicon Surf] [STL Home]
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。 商标信息