SGI

多关联容器

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

描述

多关联容器是关联容器的一种,其中可能存在多个具有相同键的元素。也就是说,它是一个关联容器,不具有唯一关联容器的限制。

细化自

关联容器

关联类型

无,除了由关联容器定义的那些类型。

符号

X 多关联容器模型的类型
a 类型为X
t 类型为X::value_type
k 类型为X::key_type
p, q 类型为X::iterator

定义

有效表达式

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

表达式语义

名称 表达式 前提条件 语义 后置条件
范围构造函数
X(i, j)
X a(i, j);
[i,j)是一个有效的范围。 创建一个包含范围中所有元素的关联容器[i,j). size()等于从ij的距离。范围[i, j)中的每个元素都存在于容器中。
插入元素 a.insert(t)   插入ta. 的大小增加a1。的值a.count(t)a.
插入范围 a.insert(i, j) [i, j)是一个有效的范围。 等价于a.insert(t)对于范围中每个迭代器指向的t对象。[i, j)每个元素都插入到a. 的大小增加aj - i.

复杂度保证

插入元素的平均复杂度最多为对数。

插入范围的平均复杂度最多为O(N * log(size() + N)),其中Nj - i.

不变式

模型

注释

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

另请参阅

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