En référence à cette previous SO question, je corrige mon erreur & changé les itérateurs être de même type « vecteur », à savoirVector itérateurs erreur incompatible pour un vecteur tenant itérateurs d'un autre vecteur
J'ai remplacé la ligne
auto startIter = table.begin();
avec
auto startIter = tabTypeIterVector [0];
dans la boucle for de la fonction AccessTableIteratorsVector(). WRT ci-dessous le code, cependant, je reçois toujours la « affirmation de débogage a échoué, vecteur itérateurs erreur incompatible, lorsque cette ligne est frappé en boucle
itloop = - endIter
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 = tabTypeIterVector[0];
auto endIter = tabTypeIterVector[1];
for(auto itloop=startIter; itloop !=-endIter;itloop++)
{
}
}
* Pourquoi voulez-vous stocker un vecteur d'itérateurs? Quel est le problème * réel * qui est censé résoudre? –
... et pourquoi ne stockez-vous pas simplement des indices qui ne sont pas invalides. – spectras