社区
C语言
帖子详情
大家来看看这个问题
r11222
2010-08-06 04:18:58
看STL代码的时候,经常出现这一种方法
就是用两个< 代替一个==
也就是
if(a==b)
改成
if( !(a<b) && !(b<a) )
有什么好处
应该是比较高效,不然STL也不会这样写,但高效在哪?
...全文
156
16
打赏
收藏
大家来看看这个问题
看STL代码的时候,经常出现这一种方法 就是用两个< 代替一个== 也就是 if(a==b) 改成 if( !(a<b) && !(b<a) ) 有什么好处 应该是比较高效,不然STL也不会这样写,但高效在哪?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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型的比较问题吧
二维矩形装箱
问题
二维矩形装箱
问题
问题
描述
问题
分析如何放置如何决定矩形出现的顺序运行结果 ...对于这个
问题
,我们应该分成两部分来看: 1.当手里拿到一个矩形以后,该如何放置; 2.如何决定拿到矩形的顺序; 如何放置 这个
问题
可
xib创建Cell时重用数据混乱
问题
解决方案
写这篇文章是因为在项目中遇到了这个
问题
,,所以拿下来和大家一起分享,平常一直没有因为复用
问题
而导致数据复用混乱, 先
看看
效果图: 出现了旧的数据,所以现在这个
问题
就不能在使用registerNib注册xib方法了...
printf()函数的参数传递
不知道大家看明白这个用%ld来打印出的这个结果的
问题
没,是不是%ld不能用来打印一个float或者double类型的值呢?答案是可以打印,那为什么会打印为完全错误的值呢?这就与printf函数的参数传递就有关系了。下面我将...
解析面试常
问题
之JavaScript中的闭包概念及应用,顺便普及一下大家口中常说的内存泄漏
问题
JavaScript中的闭包是一个面试中经常被考到的
问题
,大家可能都对这个概念多多少少都有一些模糊的概念或者一点都不了解,那么今天就来给大家讲解一下。 先点赞,再看博客,顺手可以点个关注。 微信公众号搜索...
用 LSTM 来做一个分类小
问题
用一个简单的例子来
看看
LSTM 在 tensorflow 里是如何做分类
问题
的。这个例子特别简单,就是一个长度为 20 的二进制串,数出其中 1 的个数,简单到用一个 for 就能搞定的事情,来
看看
LSTM 是如何做到的。大家可以先...
C语言
70,040
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章