C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 为什么std :: map有查找成员函数?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我和一位同事正在讨论成员与非成员职能的相对优点.出现了一个问题:为什么std :: map有一个find成员函数.

我的回答是,然您可以在地图上使用std :: find,但您必须搜索键值对,或者使用find_if,例如一个lambda.但是,这是线性的,map.find提供了一个比密钥更好的线性时间搜索.我最后断言,如果它可能是一个非成员,那么它本来就是! (然,std :: String表明我的概括可能有些仓促).

我的同事指出,使用map.lower_bound可以实现与非成员函数相同的查找方式.

@H_320_2@map.find有没有理由成为会员?

解决方法

实现std :: find搜索std :: map上的键作为非成员函数一个很大的反对意见是这样做会阻止你实现当前版本的std :: find,它会搜索一个键值对.

作为关联容器,std :: map包含键值对.非成员std :: find是为所有容器定义的,它是一个搜索容器中项目的函数,该项目必须是std :: map的键值对;使用std :: find通过其键查找项目将是不一致的.

显然,可以实现仅适用于地图的std :: find_by_key函数,但是这样的函数总是具有基于地图类型的特化.与添加成员函数相比,API设计没有改进.

大佬总结

以上是大佬教程为你收集整理的c – 为什么std :: map有查找成员函数?全部内容,希望文章能够帮你解决c – 为什么std :: map有查找成员函数?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。