0

私はイテレータで抱えているのと同じ問題を探していました。ほぼ同じタイトルで似たような問題のトピックをたくさん見つけましたが、私のものは少し異なります。

* iteratorを特定の位置に配置しようとしていますが、実行時に「list iteratornotdeferencable」というエラーが発生します。コードは次のとおりです。

 CompetidorFormula2000* retornarCompetidorF2000(int pos){
        list<Competidor*>::iterator itr=miLista.begin();
        CompetidorFormula2000* f1=new CompetidorFormula2000(); 

        if(pos>0 && pos<=miLista.size()){
            advance(itr,pos);

        }
        f1=(CompetidorFormula2000*) (*itr);
        return f1;
        delete f1;
    }
4

1 に答える 1

3

posが等しければmiLista.size()、リストの最後までイテレータを取得します。これは、 を呼び出したときに取得するイテレータと同じですmiLista.end()。リストの末尾への反復子は逆参照できません

于 2012-06-12T17:58:31.840 に答える