24

iteratorin aforループを使用eraseしていて、イテレータの現在の反復で使用している場合、for ループは正常に続行され、残りの要素にアクセスする必要がありますかlist?

私が読んだことから、これが当てはまるはずであり、listvsdequeまたはの主な特徴ですvector。私の目的では、 aが機能するqueue可能性がありますが、この動作が必要です。

これが私が検討しているループです:

    std::list<Sequence>::iterator iterator;
    iterator=m_concurrents.begin();
    for (;iterator!=m_concurrents.end();++iterator){
        if (iterator->passes()){
            m_concurrents.erase(iterator);
        }
    }
4

3 に答える 3