社区
C语言
帖子详情
大家来看看这个问题
r11222
2010-08-06 04:18:58
看STL代码的时候,经常出现这一种方法
就是用两个< 代替一个==
也就是
if(a==b)
改成
if( !(a<b) && !(b<a) )
有什么好处
应该是比较高效,不然STL也不会这样写,但高效在哪?
...全文
157
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型的比较问题吧
修复“错误提示内存不能为read”的工具
我们就
看看
是什么原因引起的吧,另外附送一个小工具修复见下面附件 总结下大概以下9个原因 1、驱动不稳定,与系统不兼容,这最容易出现内存不能为 Read 或者文件保护(主要原因) 2、系统安装了一个或者多个流氓...
Python将写好代码打包为exe闪退怎么办(小概率
问题
篇)
遇到
问题
后,我第一时间到CSDN翻看文章,
看看
有没有和我遇到了同一个
问题
。但是查找了许多篇文章,貌似没有人遇到过类似的
问题
。 所以我决定写一篇文章,来向大家分享我是怎么处理我遇到的
问题
的。 首先,我先告诉...
MySQL 总是差八个小时,如何破?
这是一个小伙伴在微信上问我的,对于初学者我非常能理解这类
问题
带来的困扰,各种尝试,各种搜索,别人说的头头是道,但是就是解决不了自己的
问题
,今天我简单从两个方面来和大家聊聊这个
问题
,如果小伙伴们有其他的...
数仓建模—需求管理
项目需求管理这五个步骤的逻辑性是非常强的,如果大家在BI项目上遇到过类似的
问题
不妨对比这几个步骤去
看看
是不是这么走的。如果是这么走的,还有
问题
,大概率就是业务方或者甲方的
问题
。比如指标范围迟迟不能圈定、...
启用计算机时出现了,电脑开机总提示由于启动计算机时出现了页面文件配置
问题
怎么办?...
这几天小编开机的时候总是提示这样的信息,这里小编就都打出来大家
看看
,如下:系统属性窗口提示“由于启动计算机时出现了页面文件配置
问题
,windows在你的计算机上创建了一个临时页面文件。所有磁盘驱动器的总页面...
C语言
70,035
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章