【发布时间】:2013-03-05 17:13:00
【问题描述】:
这是代码
next = friendchain.begin()->first;
while(true) {
start = next;
next = friendchain[next];
if(next!=0) {
friendchain.erase(start);
groupcount++;
size = friendchain.size();
printf("size=%i\n", size);
//size = 0
}
if (next==0) {
size = friendchain.size();
printf("size=%i\n", size);
//size = 1!!!
if (friendchain.empty())
{
break;
//should go out of the loop here
} else {
next = friendchain.begin()->first;
// next has value of 3
}
}
}
我的朋友链地图的内容是:
1 -> 2 和
2 -> 3
我不明白为什么 else 部分被执行。
如果您需要更多代码,请告诉我。
问候
【问题讨论】:
-
你的问题很糟糕。我没有投反对票,而且你的代码也很糟糕,使用迭代器遍历你的地图,那么你就不需要检查它是否是 emtpy
-
请至少显示友链的类型,然后开始
-
我是第一次使用地图,并且仍在学习引用 c++ 文档的语言,但在那里没有得到任何解决方案。 @PorkyBrain start 和 next 很长。