C++ 具名要求: AssociativeContainer

来自cppreference.com
< cpp‎ | named req
 
 
 

关联容器 (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 指代合法范围并指向可隐式转换到 X::value_type 的元素的输入迭代器 (InputIterator)
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 c(r,kl) 划分 a 的值,其中 re 的关键且 ea
ku !c(ku, r) 划分 a 的值
ke c(r, ke)!c(ke, r) 划分 a 的值,其中 c(r, ke) 隐含 !c(ke, r)
A Xstd::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) ,及编译时复杂度。

[编辑] 标准库中的关联容器

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