透明比较器:关联容器中增强的查找功能
在 C 14 中,关联容器引入了重大更改。如 [associative.reqmts]/13 中所述,成员函数模板 find、count、lower_bound、upper_bound 和 equal_range 仅在类型 Compare::is_transparent 存在时参与重载决策。
的用途透明比较器
使比较器“透明”的目的是扩展查找关联容器的功能。通过允许比较器透明,开发人员可以利用与容器的密钥可比较的类型,而不必局限于使用密钥类型本身。这使得查找场景更加灵活和高效。
实现和使用
C 14 引入了诸如 std::less 之类的库模板,有助于创建透明比较器:
template <class T = void> struct less { // ... typedef *unspecified* is_transparent; }; template <> struct less<void> { // ... typedef *unspecified* is_transparent; };
在此示例中,std::set
对关联容器的影响
值得注意的是,此更改不会影响开箱即用的标准容器的默认操作。它们将继续像往常一样使用它们的键类型作为主要比较标准。
但是,通过利用 std::less
以上是透明比较器如何增强 C 14 关联容器中的查找?的详细内容。更多信息请关注PHP中文网其他相关文章!