2014-12-03 48 views
0

p变量是大小为3的元组,用于存储3D空间中点的位置。对可变性能的多次调用

是下面的代码:不止这一个?:

int x = p.x(); 
int y = p.y(); 
int z = p.z(); 

if (x > 0 && x < endx) 
{ 
    if (Matrix[x+1][y][z] == 1){} 
    if (Matrix[x-1][y][z] == 1){} 
} 

if (y > 0 && y < endy) 
{ 
    if (Matrix[x][y+1][z] == 1){} 
    if (Matrix[x][y-1][z] == 1){} 
} 

if (z > 0 && z < endz) 
{ 
    if (Matrix[x][y][z+1] == 1){} 
    if (Matrix[x][y][z-1] == 1){} 
} 

编辑 - 使用低速

if (p.x() > 0 && p.x() < endx) 
{ 
    if (Matrix[p.x()+1][p.y()][p.z()] == 1){} 
    if (Matrix[p.x()-1][p.y()][p.z()] == 1){} 
} 

if (p.y() > 0 && p.y() < endy) 
{ 
    if (Matrix[p.x()][p.y()+1][p.z()] == 1){} 
    if (Matrix[p.x()][p.y()-1][p.z()] == 1){} 
} 

if (p.z() > 0 && p.z() < endz) 
{ 
    if (Matrix[p.x()][p.y()][p.z()+1] == 1){} 
    if (Matrix[p.x()][p.y()][p.z()-1] == 1){} 
} 

VS 2012 Express中,视窗64

+0

你有没有衡量什么?如何在不知道平台/编译器/选项等的情况下回答你的问题? – quantdev 2014-12-03 03:49:49

+0

@quantdev,对不起,我总是忘记 – 2014-12-03 03:54:29

+1

嗯,我会说没有办法减少通话次数,你正在访问3D邻居,并且需要3次通话。使用数组作为p可以减少代码行数,但不会减少通话时间。 – 2014-12-03 03:54:47

回答

0

剖析特定功能后,是一样的东西:

enter image description here

enter image description here