哪个是更优化的代码?

时间:2012-10-13 13:48:10

标签: c++ performance

// (1)
for (int iter = 1; iter <= VERTEX_SIZE; iter ++) {
    if (visit[iter]) continue;
    dfs(iter);
}

// (2)
for (int iter = 1; iter <= VERTEX_SIZE; iter ++) {
    if (!visit[iter]) {
        dfs(iter);
    }
}

哪个代码更优化?我只是好奇。

2 个答案:

答案 0 :(得分:4)

对于任何甚至是半正式的编译器,这根本不会产生任何影响;生成的机器代码完全相同。如果您仍然想确定,请对其进行基准测试。

选择您最常找到的可读

答案 1 :(得分:0)

没有区别。选择你认为最好的那个。你用第一种方式编译的每个程序肯定都会以第二种方式工作,并且运行时间也是一样的。

注意:我会使用第二种方式;我认为它更具可读性,我见过的大多数DFS实现(在C ++和pheudocode中)都使用它。