for(i=0;i!=n;i++) 与for(i=0;i

正一说 2014-11-13 02:05:02
for(i=0;i!=n;i++) 与for(i=0;i<n;i++)两者在时间处理上,有什么区别吗?
...全文
517 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
双杯献酒 2014-11-15
  • 打赏
  • 举报
回复
如果 n>=0,就没有区别 如果 n < 0, 差别就大了去了.
wxgchrome123 2014-11-15
  • 打赏
  • 举报
回复
前者习惯C++;后者习惯C
liu_lakers 2014-11-15
  • 打赏
  • 举报
回复
要习惯用++i代替i++
尤其是迭代器,否则别人看代码的会笑话
勤奋的小游侠 2014-11-15
  • 打赏
  • 举报
回复
应该看你的i是什么,如果i是int,就没有什么区别。如果i是其它自定义的类型。那就有区别。
renwotao2009 2014-11-15
  • 打赏
  • 举报
回复
汇编代码不一样 第一个是jne 第二个是jl 或者jb
Sping 2014-11-15
  • 打赏
  • 举报
回复
第一种是C++ Primer提倡的写法,是因为考虑到操作符重载“!=”号比“<”号更容易被定义重载,其他参考楼上
江南小鱼 2014-11-15
  • 打赏
  • 举报
回复
我觉得,时间复杂度一致只是两种不同编程风格而已,执行时间上应该没区别。 至于选择哪种,看你具体的编程场景了 1、如果i都是int类型 在循环里面不改变i的值的前提下,两种用法没区别;如果循环里面会对i值做修改,那么建议使用小于(原因不解释:-)) 2、有些时候必须使用小于,如果i是不支持比大小的iterator,那么就必须使用不等于咯
漂浮一生 2014-11-13
  • 打赏
  • 举报
回复
普通数据都是用< >等来判断的,iterator就只能用!=了
赵4老师 2014-11-13
  • 打赏
  • 举报
回复
只不过i如果是iterator的话,支不支持<还另说。
shiguojie19892 2014-11-13
  • 打赏
  • 举报
回复
引用 4 楼 xihu1364 的回复:
时间上应该没什么区别 在for里面有i操作 i != n 这种貌似不好
万一 n == -1 呢?
版主大哥 2014-11-13
  • 打赏
  • 举报
回复
时间上应该没什么区别 在for里面有i操作 i != n 这种貌似不好
mymtom 2014-11-13
  • 打赏
  • 举报
回复
没区别,jne指令和jl指令执行时间没有区别
luciferisnotsatan 2014-11-13
  • 打赏
  • 举报
回复
引用 1 楼 lkshflasgla 的回复:
看对应汇编程序
还得去查下CPU的指令周期表。
Lion_Peng 2014-11-13
  • 打赏
  • 举报
回复
看对应汇编程序

64,686

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧