You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确阅读C++ ISO标准文档 查找unordered_set参数要求示例

你没有找到相关要求是因为标准将同类组件的通用约束抽离到了统一的前置章节,不会在单个容器的定义部分重复描述,并不是标准没有收录这类信息。

以下是n4860版本中对应内容的查阅路径:

  • 所有无序关联容器(包括unordered_set、unordered_map等)的模板参数通用约束,统一规定在22.2.7 无序关联容器要求 [unord.req] 章节:
    • 对于Hash模板参数:标准要求它是符合可调用约定的类型,接收一个const Key&类型的入参,返回值必须可转换为size_t,且对同一个输入的多次调用返回值必须恒定。
    • 对于Pred模板参数:标准要求它是二元可调用类型,接收两个const Key&类型的入参,返回值必须可转换为bool,且必须满足等价关系的三个约束:自反性(同一个对象比较返回true)、对称性(a等于b则b等于a)、传递性(a等于b、b等于c则a等于c)。如果你的自定义Key已经重载了operator==,可以直接使用默认的std::equal_to<Key>,不需要单独实现Pred。
    • 对于Allocator模板参数:要求符合16.5.3.5 分配器要求 [allocator.requirements] 中的约束,普通场景下使用默认的std::allocator<Key>即可,不需要自定义实现。

C++标准的编写逻辑是尽可能避免冗余,同类组件的公共要求会统一放到通用规则章节,单个组件的定义页仅描述它独有的特性,后续查阅时优先找对应类别组件的通用规则即可。


内容的提问来源于stack exchange,提问作者신승빈

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:42:04