Je reçois une erreur de segmentation lors de l'itération sur un ensemble. La trace de la pile pointe àErreur de segmentation de std :: _ Rb_tree_const_iterator <Type> :: operator ++
std::_Rb_tree_const_iterator<Type>::operator++
std::_Rb_tree_increment()
mais je ne reçois rien de plus informatif. L'itérateur est sur un ensemble retourné par une fonction
for (FactSet::factset_iterator fact_it = (*binSet_it).getDependencyGraph().getExtentionalFactSet().begin();
fact_it != (*binSet_it).getDependencyGraph().getExtentionalFactSet().end();
++fact_it) {...}
Je ne vois pas le problème. Merci d'avance.
Merci, c'est très logique. J'ai essayé une approche différente: 'pour (FactSet :: factset_iterator fact_it = (* binSet_it) .getDependenceGraphRef(). GetExtentionalFactSetRef(). Begin(); fact_it! = (* BinSet_it) .getDependencyGraphRef(). GetExtentionalFactSetRef() .end(); + fact_it) {...} ' où getDependencyGraphRef et getExtentionalFactSetRef retournent des références constantes. Cela fonctionne. Je voulais éviter de copier car la structure avec laquelle je travaille est assez grande. – myahya
Si vous voulez éviter la copie, vous pouvez aussi faire 'const FactSet & fset = (* binSet_it) .get ...' et ensuite utiliser 'fset'. Puisque c'est une référence 'const', vous n'encourez pas de copie. –