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. 保留所有权利。 商标信息