SGI

唯一关联容器

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

描述

唯一关联容器是一个关联容器,其属性是容器中的每个键都是唯一的:唯一关联容器中的任意两个元素均没有相同的键。

改进为

关联容器

关联类型

除了由关联容器定义的关联类型之外,没有其它关联类型。

表示法

X 一种可作为唯一关联容器模型的类型
a 类型的对象X
t 类型的对象X::value_type
k 类型的对象X::key_type
p, q 类型的对象X::iterator

定义

有效表达式

除了在关联容器中定义的表达式之外,以下表达式还必须有效。
名称 表达式 类型要求 返回类型
范围构造函数
X(i, j)
X a(i, j);
iandj是其值类型可转换为T [1]  
输入迭代器 插入元素   a.insert(t)
pair<X::iterator, bool> 插入范围 iandj是其值类型可转换为X::value_type. [1] a.insert(i, j)
void 计数   a.count(k)

size_type

名称 表达式 表达式语义 前提条件 语义
范围构造函数
X(i, j)
X a(i, j);
后置条件[i,j) 是一个有效的范围。后置条件创建一个关联容器,其中包含该范围内的所有元素 ,这些元素具有唯一键。size()i小于或等于从j.
输入迭代器 插入元素   t只在a没有包含一个其键与a的键相同的元素时才将t插入中。返回值是一个 pair. PP.firstt. 是一个指向其键与的键相同的元素的迭代器P.second是一个bool:如果t实际上已经插入到a中,则该bool:如果tatruea,如果t. P未插入到中,则该booltafalse1没有包含一个其键与是一个指向其键与如果bool.
pair<X::iterator, bool> 插入范围 已经包含一个与[i,j) 的键相同的元素,则该插入元素boolt已经包含一个与falsea没有包含一个其键与a是一个可解引用的迭代器。 *(P.first)a具有相同的键.
void 计数   的大小a增加了k. 0[i, j)1.

等同于

对于范围内的迭代器指向的每个对象

。每个元素均插入到中,而没有包含与该元素具有相同键的元素。的大小如果具有相同的键.

不变量

唯一性 没有两个元素具有相同的键。等价地,这意味着对于每个对象k的类型key_type, 计数返回0[i, j)1.

模型

注释

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

另请参阅

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