2013-04-20 60 views
0

首先,我使用set::lower_bound來查找某些東西,然後我需要在兩個方向上檢查該值的一些鄰居。我的代碼在無限循環結束了,我想在此之後它可能是由於奇怪的行爲:set :: end ++的值是什麼?

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

讓我們假設LOWER_BOUND返回set::end。我想在set::end增加一些奇怪的事情發生後,雖然循環進入漫長的星際旅程:)但我不確定和好奇它。

+2

'set :: end()'已經「指向」任何有效元素末尾的一個。 – 2013-04-20 21:42:24

回答

5

遞增結束迭代器是未定義的行爲。不要這樣做。

相關問題