まず第一に、私はset::lower_bound
何かを見つけるために使用し、次にその値のいくつかの隣人を両方向でチェックする必要があります。私のコードは無限ループに陥り、この後の奇妙な動作が原因である可能性があると思います:
idx = set.lower_bound(val);
++idx;
while(idx != set.end() && /*...*/)
{
/*...*/
idx++;
}
lower_bound が を返したとしましょうset::end
。インクリメントした後、set::end
何か奇妙なことが起こり、whileループが星への長い旅に出ると思います:)しかし、私はそれについて確信が持てず、興味があります。