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()
已经“点”过任何有效元素的末尾。