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.
