关于 for 循环

灌水区

Melo.VVちゃん @ 2024-04-21 21:35:57

本人在写题时遇到了这样的问题

for (int i = 1 ;i < ans.size () - 2 ;i ++) {
}

上面的可以 AC

但是写成这样会部分 RE:

for (int i = 1 ;i <= ans.size () - 3 ;i ++) {
}

想问一下后者到底什么时候会导致 RE


by yukimianyan @ 2024-04-21 21:36:51

当 ans.size() <= 2 时


by yukimianyan @ 2024-04-21 21:37:58

因为 ans.size() 是 size_t 类型,是无符号的,这样以后 2 - 3 = -1 在无符号类型里面变成了一个巨大无比的数字


by Melo.VVちゃん @ 2024-04-21 21:47:02

@yukimianyan thx


|