【发布时间】:2021-01-09 16:32:25
【问题描述】:
我试图在向量上运行一个循环,而不是在最后两个元素上运行。所以为此我使用了以下实现:
vector<int> x;
for(int i=0;i<x.size()-2;i++){
cout<<"looping over element"<<endl;
}
但是,在 x 中没有插入任何元素的情况下运行上述代码会导致无限循环。 ideonelink:
为什么会出现这种行为?如果x.size()==0 那么i<-2 条件不应该成立,代码不应该进入for循环
【问题讨论】:
-
您是否真的尝试打印
x.size()-2是什么?您会惊讶地发现结果不是 -2。