2012-12-27 158 views
0

這兩者有什麼區別。遞歸困境

int find_set (int v) 
{ 
    if (v == parent [ v ]) 
     return v ; 
    return parent [ v ] = find_set (parent [ v ]) ; 
} 

和:

int find_set (int v) 
{ 
    if (v == parent [ v ]) 
     return v ; 
    parent [ v ] = find_set (parent [ v ]) ; 
} 
+6

如果if語句失敗,第二個沒有'return'語句。這是你的意思嗎? –

回答

4

的差異,如@Omri說,是第二個有沒有回報,如果if語句不執行,留給你(希望)編譯器錯誤一個沒有返回值的代碼路徑。與Ruby之類的語言不同,C++方法或函數的最後一個語句不是隱式的返回值。