0

我在这里完全疯了。我正在使用 Visual Studio 2008,我不禁认为它有一个错误,或者我只是忘记了一些重要的基础知识。

似乎当我删除我的 for 循环的“初始化”(第一个字段)时,我的“后增量”(第三个字段)在循环体之前执行。

std::list<VideoTranscoderStats>::iterator videoStatsIter = mTranscoderStatisticsList.begin();
for(;videoStatsIter != mTranscoderStatisticsList.end();videoStatsIter++)
{
    // do stuff
}

当我调试时,我可以看到我在“做东西”之前执行了“videoStatsIter++”,而且在测试 for 循环中的条件之前。

另一方面,如果我将 videoStatsIter 的初始化移到 for 循环语句的开头,则一切正常。"videoStatsIter++" 在 for 循环体之后执行。

4

0 回答 0