0

首先,我set::lower_bound用来查找一些东西,然后我需要在两个方向上检查该值的一些邻居。我的代码最终进入无限循环,我认为这可能是由于之后的奇怪行为:

idx = set.lower_bound(val);
++idx;
while(idx != set.end() && /*...*/)
{
  /*...*/
  idx++;
}

让我们假设 lower_bound 返回set::end。我想在增加set::end一些奇怪的事情之后发生了,while 循环进入了通往星星的漫长旅程:) 但我不确定和好奇。

4

1 回答 1

5

递增结束迭代器是未定义的行为。不要这样做。

于 2013-04-20T21:42:12.883 回答