首页 > 后端开发 > C++ > C 14 透明比较器如何更改关联容器查找?

C 14 透明比较器如何更改关联容器查找?

Mary-Kate Olsen
发布: 2024-12-25 19:40:17
原创
579 人浏览过

How Do C  14 Transparent Comparators Change Associative Container Lookups?

使用透明比较器更改 C 14 中的关联容器

C 14 引入了关联容器的重大更改,允许“透明比较器”。 ”此更改要求 find、count、lower_bound、upper_bound 和 equal_range 成员函数模板不参与重载决策,除非存在 Compare::is_transparent 类型。

透明比较器的用途

透明比较器允许使用与键类型不同的类型来比较关联容器中的元素。这扩展了关联容器的功能,允许更灵活和高效的查找。

好处和变化

此更改有利于异构查找场景,允许直接比较不同的容器内的数据类型。然而,它并没有从根本上改变标准容器的默认行为。如果未显式使用透明比较器(例如 std::less),容器将继续像以前一样运行。

对现有代码的影响

std::set 的默认比较器现在隐式指定 Key = std::less。因此,使用默认比较器的现有代码不会经历任何更改。选择异构查找需要显式指定透明比较器类型(例如 std::set>)。

总之,C 14 中的透明比较器提供了增强的功能对于关联容器,可以实现更多样化的数据比较。但是,需要注意的是,透明比较器默认情况下处于禁用状态,如有必要,可以安全地由现有代码采用。

以上是C 14 透明比较器如何更改关联容器查找?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板