VC++ 6中'for循环'的终止条件是否刷新?

zhe*_*nic 0 c++ for-loop termination visual-c++-6 visual-c++

for (int i = 0 ; i < stlVector.size() ; i++)
{ 
    if (i == 10)
    { 
        stlVector.erase(stlVector.begin() + 5 )
    }
}
Run Code Online (Sandbox Code Playgroud)

终止条件部分"stlVector.size()"是否考虑"stlVector.erase(...)"?换句话说,每次循环迭代都会刷新stlVector.size()吗?我现在无法测试,所以我在这里发了一个问题.

Thx提前!

最好的祝福,

zhengtonic

Kei*_*thB 5

为了清楚起见,不要在循环刷新任何东西方面考虑它.每次检查条件时(在每次循环开始时),都会在stlVector变量上调用size()方法,并返回向量的当前大小.

erase()方法减小了向量的大小,因此下次调用size()时,返回的值将更小.