list迭代有关问题,求解释

list迭代问题,求解释。std::listServerBase::iterator itr binfo2.info().baseList.begin()std::list

list迭代问题,求解释。

std::list<ServerBase>::iterator itr = binfo2.info().baseList.begin();
    std::list<ServerBase>::iterator end = binfo2.info().baseList.end();
    int n = binfo2.info().baseList.size();
    printf("list size = %d\n", n);
    for(; itr != end; itr++) {
        //EXPECT_EQ(100, itr->max);
        //printf("base type : %s\n", (itr->type).c_str());
        printf("1111\n");
    }


输出 :
list size = 1
1111
1111
段错误

size等于1,为什么会迭代2次呢? 迭代 Iterator c++
[解决办法]
for(; itr != end; itr++) 
end直接换成binfo2.info().baseList.end()呢?
[解决办法]
change to another ide to retest.