J'ai vu quelques liens SO où une erreur similaire a été vue & a été suggéré d'utiliser la référence constante au vecteur comme ils copiaient le vecteur (passe en valeur) mais dans mon scénario j'utilise le même vecteur (pas de passage en valeur). BUt voir ce problème. WRT ci-dessous le code, je vois l'erreurEn C++, la fenêtre d'échec de l'assertion de débogage apparaît et j'obtiens des itérateurs vectoriels incompatibles erreur d'exécution
assertion de débogage fenêtre échoué saute vers le haut & je reçois vecteur itérateurs erreur incompatible
dans l'exécution lorsque la ligne
itloop !=-endIter
est atteint.
typedef vector<vector<string> tableDataType;
vector<tableDataType::Iterator> tabTypeIterVector;
tableDataType table;
FillRows(vector<string> vstr)
{
table.push_back(vstr);
if(some_condition_satisfied_for_this_row())
{
tableDataType::Iterator rowIT = table.end();
tabTypeIterVector.push_back(rowIT);
}
}
In another function:
AccessTableIteratorsVector()
{
auto startIter = table.begin();
auto endIter = tabTypeIterVector[0];
for(auto itloop=startIter; itloop !=-endIter;itloop++)
{
}
}
merci. J'ai corrigé mon erreur, mais en observant toujours la même erreur. Élevé une question différente pour cela ici https://stackoverflow.com/questions/45264761/vector-iterators-incompatible-error-for-a-vector-holding-iterators-of-another-ve – codeLover