您当前的位置: 首页 >  c++
  • 0浏览

    0关注

    1477博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C++ set find 找不到本来存在的元素

软件工程小施同学 发布时间:2021-10-12 11:07:05 ,浏览量:0

看一个例子

C++的set中的find函数,具体什么原理啊,总不对呢-CSDN论坛

我的情况是,set中可能存在多个相同的元素,然后重载了比较函数operator,其中写了=号,

 查询时候就会查不到本来存在的元素。

将>=修改为>就好了。

其原理是

其实,set容器在判定已有元素a和新插入元素b是否相等时,是这么做的:1)将a作为左操作数,b作为有操作数,调用比较函数,并返回比较值  2)将b作为左操作数,a作为有操作数,再调用一次比较函数,并返回比较值。如果1、2两步的返回值都是false,则认为a、b是相等的,则b不会被插入set容器中;如果1、2两步的返回值都是true,则可能发生未知行为,因此,记住一个准则:永远让比较函数对相同元素返回false。 ———————————————— 版权声明:本文为CSDN博主「云洞」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/janeqi1987/article/details/107245566

如果需要set存在多个相同的元素,可以使用multiset。

关注
打赏
1665320866
查看更多评论
立即登录/注册

微信扫码登录

0.0410s