if (int sze = listVertex.size()> 0) {

用这种边判断边声明赋值的偷懒办法,最后sze其实根本没有被赋予你想要的值,导致后面程序崩溃。可以通过断点调试看得一清二楚。

另外,if语句中同时进行赋值和判断时要注意运算符优先级。

参考: https://zh.cppreference.com/w/c/language/operator_precedence

我们发现,赋值符号“=”的优先级是小于判断符号"==""!="的,也就是说,if中同时赋值和判断时,要把赋值的部分用括号括起来:

如果没有括号: