广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    如何解决自定义键值的map数据被覆盖

    来源:网络收集  点击:  时间:2024-05-03
    【导读】:
    最近工作过程中,采用自定义对象来作为map的键值,但是使用过程中,发现map数据会被覆盖,经过分析,终于找到原因并解决,因此在这里分享出来。工具/原料moreC++Xcode 10.1方法/步骤1/8分步阅读

    首先自定义JKeyPair对象作为map容器的键值,需要重载operator运算符

    2/8

    完成JKeyPair的定义后,接着实现JKeyPair对象的具体内容

    3/8

    然后验证效果,先定义std::map容器,键值为自定义对象JKeyPair, 值为std::string字符串,然后往map容器存放数据

    4/8

    最后运行输出的map容器的信息如下所示,所有的内容都正常打印出来

    5/8

    这时候,我们把map容器中第三个成员中的键值的index修改成与第二个成员中的键值的index一样,即从3修改成2

    6/8

    从输出的结果看,map容器只输出两个成员,并且第二个成员中的值被覆盖

    7/8

    解决map中数据被覆盖,那么需要修改自定义对象JKeyPair中的函数operator,添加如下红色方框标示的内容

    8/8

    完成修改之后,再次运行程序,从输出的信息看,容器map的所有信息都正确输出

    总结1/1

    1、自定义对象作为map的键值,需要重载operator运算符

    2、operator运算符的实现需要考虑对象内所有的成员变量

    注意事项

    喜欢经验欢迎点赞投票!

    经验由 YWMLI1 原创,首发百度经验,转载请注明出处!

    MAP容器自定义键值数据覆盖
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.ff371.cn/art_657792.html

    ©2019-2020 http://www.ff371.cn/ 国ICP备20009186号06-22 19:22:10  耗时:0.024