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 ] ) ;
}
4

1 回答 1

4

正如@Omri 所说,不同之处在于,如果 if 语句不执行,则第二个没有返回,从而(希望)为没有返回值的代码路径留下编译器错误。与 Ruby 等语言不同,C++ 方法或函数的最后一条语句并不是隐含的返回值。

于 2012-12-27T23:23:15.180 回答