C++ 具名要求:关联容器 (AssociativeContainer)

来自cppreference.com
< cpp‎ | named req
 
 
C++ 具名要求
基础
类型属性
库所属
容器
容器元素
迭代器
流 I/O
随机数
并发
(C++11)
(C++11)
其他
 

关联容器 (AssociativeContainer) 是提供基于键的快速对象查找的容器 (Container)

要求

凡例

X 容器类型
a X 类型的值
a2 结点句柄与 X 兼容的 Y 类型的值
b X 类型的可能为 const 的值
u 任意变量名
a_uniq (当 X 支持唯一键时)X 类型的值
a_eq (当 X 支持多重键时)X 类型的值
a_tran (当 X::key_compare::is_transparent 存在时)X 类型的可能为 const 的值
i, j 老式输入迭代器 (LegacyInputIterator) ,指代有效范围并指向可隐式转换到 X::value_type 的元素
p 指向 a 的有效常迭代器
q 指向 a 的有效可解引用常量迭代器
r 指向 a 的可解引用迭代器
q1, q2 指代 a 中的有效范围的常迭代器
il std::initializer_list<X::value_type> 类型的对象
t X::value_type 类型的值
k X::key_type 类型的值
c X::key_compare 类型的可以为 const 的值
kl 一个值,使得 a 依据 c(r,kl) 已划分,其中 re 的键且 ea
ku 一个值,使得 a 依据 !c(ku, r) 已划分
ke 一个值,使得 a 依据 c(r, ke)!c(ke, r) 已划分,其中 c(r, ke) 隐含 !c(ke, r)
A X 所用的存储分配器,或 std::allocator_type<X::value_type>
m 分配器,其类型可转换为 A
nh X::node_type 类型的非 const 右值
表达式 返回类型 前条件/要求 后条件/效果 复杂度
X::key_type Key Key 可析构 (Destructible) 编译时
X::key_compare Compare 编译时
X::value_compare 满足二元谓词 (BinaryPredicate) 的类型 对于 std::setstd::multisetkey_compare
对于 std::mapstd::multimapKey 上的顺序关系
编译时
X(c), X a(c); key_compare 可复制构造 (CopyConstructible) c 的副本为 key_comp 构造空容器 常数
X(), X a; key_compare 可复制构造 (CopyConstructible) Compare()key_comp 构造空容器 常数
X(i, j, c), X a(i, j, c); key_compare 可复制构造 (CopyConstructible) value_type*i 可就位构造 (EmplaceConstructible) X c 的副本为 key_comp 构造空容器并插入来自范围 [i; j) 的所有元素 通常为 N log N,或若 [i, j) 已排序则为 N(其中 Nstd::distance(i, j)
X(i, j), X a(i, j); key_compare 可复制构造 (CopyConstructible) value_type*i 可就位构造 (EmplaceConstructible) X Compare()key_comp 构造空容器并插入来自范围 [i; j) 的所有元素 通常为 N log N,或若 [i, j) 已按照 value_comp() 排序则为 N(其中 Nstd::distance(i, j)
X(il); 等价于 X(il.begin(), il.end()); 等价于 X(il.begin(), il.end());
a = il X& T 可复制插入 (CopyInsertable) X 而且亦可复制赋值 (CopyAssignable) 将范围 [il.begin(), il.end()) 赋值到 aa 的未被赋值元素均被销毁 通常为 N log N,或若 [il.begin(), il.end()) 已按照 value_comp() 排序则为 N(其中 Nil.size() + a.size()
a.key_comp() X::key_compare 返回构造 a 所用的比较对象。 常数
a.value_comp() X::value_compare 返回在比较对象外构造的 X::value_compare 类型的对象。 常数

作为 std::mapstd::multimap 的关联容器 X 额外支持表达式 X::mapped_type,它以 T 为返回的类型(但要求 T 可析构 (Destructible) ),及编译时复杂度。

标准库中的关联容器

唯一键的集合,按照键排序
(类模板)
键的集合,按照键排序
(类模板)
键值对的集合,按照键排序,键是唯一的
(类模板)
键值对的集合,按照键排序
(类模板)