如题,这俩玩意儿是不一样的。在寒假打牛客集训赛的时候被这玩意儿坑过一次,特此记录。
总而言之就是执行 while (A && B) 时会先执行A再判断B
例如
int i = 5, a[] = {1, 2, 3, 4, 5};
while (i < 5 && a[i] != 0) i ++ ; // 没问题
while (a[i] != 0 && i < 5) i ++ ; // 会访问到a[5]发生越界对,就是这么简单的一回事,被坑到了。stl其他容器的pop啊top啊之类的也是一样的,一定要把!xx.empty()写在while循环的第一个!
评论(0)
暂无评论