今天考试的题,当时这样用的 iterator
:
auto iter = a.lower_bound(i);
if (*iter == i) continue;
if (iter == a.begin()) { }
else if (iter == a.end()) { }
else { }
然后本机测样例完全没问题,然后考后交 CF 上直接爆炸...
然后本机多试了几遍发现就爆炸了,原因是上面的 iter
为 a.end()
时值不确定,正好等于 i
时就 continue
,于是乎挂了
最关键的是!因为自己一直都有在用 sanitizer,它能够动态检测各种数组越界整型溢出递归爆栈之类的运行时错误,跑各种自己造的数据时没有报任何错,让我觉得这份代码没有问题... 然后过几个大样例就跑路了(
改了就过了 草