作者ric2k1 (Ric)
看板EE_DSnP
标题[讨论] 生出来的 AdtTestObj 与 ref program 不一样, 问题在那?
时间Thu May 14 22:42:08 2009
既然说 AdtTestObj 的 data 是由 random number 产生,
同学们做出来就很有可能与 ref program 不同.
不过, 其实通常是同学们的 code 里面多宣告了一些不必要的 local AdtTestObj vars,
或是产生了一些不必要的 temporary AdtTestObj objs (如 copy 动作).
虽说也许无伤大雅, 而我们在测同学们的 code 的正确性时也会用 -value 来测,
但是还是建议同学们有空的话测一下 code 看看是怎麽回事...
不过问题是, 要怎麽知道是哪个地方的 code 多产生了 AdtTestObj 呢?
这要考验同学们 debug 的应变能力...
有经验的同学欢迎分享!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.46.125
1F:推 murasakimio:其实也可能是少一次耶@@ 05/17 12:16
2F:→ murasakimio:我是在_catacity从 0 变 1 时少一次 05/17 12:17
3F:→ murasakimio:因为直接用 _data = new T(x); 的关系 05/17 12:18
4F:→ murasakimio:如果呼叫两次AdtTestObj()就跟ref program 一样了 05/17 12:20
5F:→ murasakimio:抱歉是_capacity 05/17 12:28
6F:推 BBCallR:我也是用new T(x)而不是expand(1),结果就不一样@@" 05/17 13:27
7F:推 goodword:我的情况是: 在某些特殊情况下会有不同,但其他都一样 05/19 21:26
8F:→ goodword:如 我的: 394 127 553 633 606 783 05/19 21:27
9F:→ goodword:如 ref : 394 911 553 477 606 783 05/19 21:28
10F:→ goodword:所以并不是多一个 少一个的问题 而是选的temp obj不一样 05/19 21:28
11F:→ goodword:所以後来我改了一下insert判断的先後顺序 结果就一样了 05/19 21:29