社区
C语言
帖子详情
大家来看看这个问题
r11222
2010-08-06 04:18:58
看STL代码的时候,经常出现这一种方法
就是用两个< 代替一个==
也就是
if(a==b)
改成
if( !(a<b) && !(b<a) )
有什么好处
应该是比较高效,不然STL也不会这样写,但高效在哪?
...全文
147
16
打赏
收藏
大家来看看这个问题
看STL代码的时候,经常出现这一种方法 就是用两个< 代替一个== 也就是 if(a==b) 改成 if( !(a<b) && !(b<a) ) 有什么好处 应该是比较高效,不然STL也不会这样写,但高效在哪?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
canshui
2010-08-08
打赏
举报
回复
xuexile
ForestDB
2010-08-07
打赏
举报
回复
STL常需要的“概念”(concept)之一就是实现<重载。
Fighting Horse
2010-08-07
打赏
举报
回复
完全不是这么回事,Stl这么实现是为了减少对所对象的类型的限制,这样我们的类就只要定义 < 就行了,不需要定义 == 或者 !=
liutengfeigo
2010-08-06
打赏
举报
回复
学习了
qgqch2008
2010-08-06
打赏
举报
回复
学习了。。
r11222
2010-08-06
打赏
举报
回复
[Quote=引用 9 楼 zhao4zhong1 的回复:]
重载运算符<而不需要重载运算符==
[/Quote]
根据代码推测,好像这个解释比较好,johndii的也有道理!
谢谢!
qazwhl845174869
2010-08-06
打赏
举报
回复
[Quote=引用 4 楼 johndii 的回复:]
引用 2 楼 r11222 的回复:
引用 1 楼 lightboat09 的回复:
应该是为了解决float和double型的比较问题吧
具体呢? 小弟菜鸟
【规则4-3-3】不可将浮点变量用“==”或“!=”与任何数字比较。
千万要留意,无论是float 还是double 类型的变量,都有精度限制。所以一定要
避免将浮点变量用“==”或“!=”与数字比较……
[/Quote]
学习了
赵4老师
2010-08-06
打赏
举报
回复
重载运算符<而不需要重载运算符==
johndii
2010-08-06
打赏
举报
回复
[Quote=引用 7 楼 lightboat09 的回复:]
4楼抄的《高质量C++编程指南》4.3.3很完整啊!
[/Quote]
是啊,大概是十年前的东西了,用过C++的人都记得。
小楫轻舟
2010-08-06
打赏
举报
回复
4楼抄的《高质量C++编程指南》4.3.3很完整啊!
bobo364
2010-08-06
打赏
举报
回复
我觉得即使这样写,也无法解决float和double的比较问题
小楫轻舟
2010-08-06
打赏
举报
回复
浮点型变量都有精度限制,
要避免用==或!= 与数字比较,
应该化成>= 和 <= 形式
johndii
2010-08-06
打赏
举报
回复
[Quote=引用 2 楼 r11222 的回复:]
引用 1 楼 lightboat09 的回复:
应该是为了解决float和double型的比较问题吧
具体呢? 小弟菜鸟
[/Quote]
【规则4-3-3】不可将浮点变量用“==”或“!=”与任何数字比较。
千万要留意,无论是float 还是double 类型的变量,都有精度限制。所以一定要
避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。
假设浮点变量的名字为x,应当将
if (x == 0.0) // 隐含错误的比较
转化为
if ((x>=-EPSINON) && (x<=EPSINON))
其中EPSINON 是允许的误差(即精度)。
johndii
2010-08-06
打赏
举报
回复
浮点,要知道计算机是2进制。==比较的值和你打印看到的不是完全一样的。
r11222
2010-08-06
打赏
举报
回复
[Quote=引用 1 楼 lightboat09 的回复:]
应该是为了解决float和double型的比较问题吧
[/Quote]
具体呢? 小弟菜鸟
小楫轻舟
2010-08-06
打赏
举报
回复
应该是为了解决float和double型的比较问题吧
淘宝问大家消息在哪
淘宝的“问大家”功能为用户提供了一个互动的平台,买家可以在这里向卖家提问,而其他买家和卖家也可以为这些
问题
提供答案。3. 找到“问大家”入口:在商品详情页中,您通常可以在页面的中部或底部找到“问大家”的...
从另一个角度看奋斗史——01.小人之为
《奋斗史》中,谁是小人?... 我们首先来
看看
这个
问题
,段伏枥是不是小人?不妨回头
看看
奋斗史的第96章,此时正是曹燕即将离职之际,段伏枥做了什么?他没有照顾到武总的情绪,依照武总的意思来安抚大家的情绪,反而
50个直击灵魂的
问题
_直击心灵的48个
问题
一共有48个
问题
,这些
问题
由五大部分组成,按照顺序分别是:近期&真心话(Q1-16)这些年,我们被社会毒打了吗?(Q17-32)金钱观(Q33-35)情感(Q36-45)2021(Q46-48)晕晕写回答前,觉得有些
问题
令人心虚写回答中,觉得...
nginx解决跨域
问题
在我们前端开发的过程中, 相信大家都遇到过一个让人头疼的
问题
,那就是跨域
问题
. 跨域解决的方式有很多,这里主要讲的是如何来使用 nginx来解决我们所遇到的跨域
问题
首先,在我们开始之前,首先要知道跨域是如何...
NP-Hard
问题
浅谈
看相关算法的paper的时候,经常会出现NP-Hard这个词。...so,咱们就来
看看
这个NP-Hard
问题
,怎么用最简单的方式去了解。1.世界七大数学难题之首2000年,美国克莱数学研究所公布了世界七大数学难题,又称千禧年大
C语言
70,026
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章