2012-12-27 102 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++方法或函数的最后一个语句不是隐式的返回值。