2014-12-03 44 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