这两者之间的区别是什么。
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 ] ) ;
}
答案 0 :(得分:4)
如@Omri所述,差异在于,如果if语句没有执行,则第二个没有返回,为(没有返回值)的代码路径留下(希望)编译器错误。与Ruby之类的语言不同,C ++方法或函数的最后一个语句不是隐式返回值。