15年7个月前IP:未同步
297603
19楼
引用第17楼ltl于2011-06-01 11:12发表的  :
呵呵,谢谢LS的指点

其实这是我第一次写树链剖分的代码……本来还算正常……后来看着那堆for有点不爽就缩在一行for里面了

为什么不推荐这样写??我看不少神犇的程序都是这样写的,感觉很美。你是说要写成m > 0或者m != 0这样吗?


谈不上指点,俺水平不高,只是作为代码民工对可读性比较在意而已-。-
我觉得还是写成m > 0或者m != 0这样比较好,很容易就看明白。

另外对于我说的那个第一点说明下,经验之谈而已,可能大家见解不同。
1、把赋值包含在里面,如果简单的程序还好办,但结构层次比较多,复杂的时候,你没法分开判断究竟问题出在哪里。类似比较严重的就是这种vector_some[ function(...)],
在一些情况下你完全没法判断function到底返回了什么。
2、自增自减运算符在不同的编译器中结合次序是不同的,所以尽量少用,如果用的话尽量语义明晰,不会出现二义性。你这个里面用的当然就没问题~~
3、上在某些函数中用了很多次类似dimenson[ index ]这样的调用,而如果一个非常大的函数要用多次的话,可以根据实际情况来放在某个变量中,
否则每次都要进行索引是很浪费资源的。
极端点的例子,我见过在for循环中对同一个string进行strlen()的代码,这样每迭代一次都要重新计算一次strlen(),本来应该很快的东西也变慢了。
评论
文号 / 297603

实习会员
名片发私信
学术分 0
总主题 0 帖总回复 17 楼拥有证书:笔友
注册于 2011/06/01 10:11:48最后登录 2018/01/10 01:22:47
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:0

个人简介

暂未填写
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的