iterator不判空,考完一测见祖宗
查看原帖
iterator不判空,考完一测见祖宗
45182
Mivik楼主2020/9/27 13:30

今天考试的题,当时这样用的 iterator

auto iter = a.lower_bound(i);
if (*iter == i) continue;
if (iter == a.begin()) { /* ... */ }
else if (iter == a.end()) { /* ... */ }
else { /* ... */ }

然后本机测样例完全没问题,然后考后交 CF 上直接爆炸...

然后本机多试了几遍发现就爆炸了,原因是上面的 itera.end() 时值不确定,正好等于 i 时就 continue ,于是乎挂了

最关键的是!因为自己一直都有在用 sanitizer,它能够动态检测各种数组越界整型溢出递归爆栈之类的运行时错误,跑各种自己造的数据时没有报任何错,让我觉得这份代码没有问题... 然后过几个大样例就跑路了(

改了就过了 草

2020/9/27 13:30
加载中...