C++ set::end+的值是多少+;?

C++ set::end+的值是多少+;?,c++,stl,C++,Stl,首先,我使用set::lower_bound查找某个值,然后我需要在两个方向上检查该值的一些邻居。我的代码以无限循环结束,我认为这可能是由于以下奇怪的行为: idx = set.lower_bound(val); ++idx; while(idx != set.end() && /*...*/) { /*...*/ idx++; } 让我们假设下限返回set::end。我想在递增set::end之后,会发生一些奇怪的事情,而while loop进入了通往星星的漫长旅程:

首先,我使用
set::lower_bound
查找某个值,然后我需要在两个方向上检查该值的一些邻居。我的代码以无限循环结束,我认为这可能是由于以下奇怪的行为:

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

让我们假设下限返回
set::end
。我想在递增
set::end
之后,会发生一些奇怪的事情,而while loop进入了通往星星的漫长旅程:),但我不确定也不好奇。

递增end迭代器是一种未定义的行为。不要这样做。

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

set::end()
已经“点”过任何有效元素的末尾。
set::end()
已经“点”过任何有效元素的末尾。