私はstd::list
から要素を消去して、このリストに戻って指すようにしたいが、私はそれをこのようen要素を消去した後にstd :: listに正しく戻る方法(double for loop)?
for(std::list<CvRect>::iterator it = listOfCvRects.begin(); it != listOfCvRects.end(); it++)
{
for(std::list<CvRect>::iterator jt = listOfCvRects.begin(); jt != listOfCvRects.end(); jt++)
{
if(it == jt)
{ continue;}
if((jt->x) > (it->x) //.. more conditions...)
{
jt = listOfCvRects.erase(jt);
//OR
//listOfCvRects.erase(jt++);
}
}
}
を行うとき、私は持って、未処理の例外:iterator is unincrementable
[可能重複](http://stackoverflow.com/q/596162/624900) – jterrace
条件が対称であるならば、あなたはで内側のループを開始することができます'jt = it;' –