for (size_t i = vec.size() - 1; i >= 0; -- i) {
// .... Do something with vec[i]
}
这段代码有BUG,还是非常大的BUG
for (size_t i = 0; i <= vec.size() - 1; ++ i) {
// .... Do something with vec[i]
}
就算这么写,一样可能会出现BUG,虽然出现的概率很小
因为size_t的内部类型是unsigned的,第一段代码根本停不了,而第二段,如果恰好vec.size()的大小是unsigned int 的最大值 +1 那么循环一样结束不了
来自:钟宇腾
链接:https://www.zhihu.com/question/23301215/answer/24150980
来源:知乎