set :: end ++的价值是什么?

时间:2013-04-20 21:41:08

标签: c++ stl

首先,我使用set::lower_bound来查找内容,然后我需要在两个方向上检查该值的某些邻居。我的代码最终处于无限循环中,我认为这可能是由于此后的奇怪行为:

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

我们假设lower_bound返回set::end。我想在增加set::end之后会发生一些奇怪的事情,而循环则会进入长征之旅:)但我不确定并对此感到好奇。

1 个答案:

答案 0 :(得分:5)

增加end-iterator是未定义的行为。不要这样做。