Я видел несколько ссылок SO, в которых была замечена аналогичная ошибка, и было предложено использовать константную ссылку на вектор, поскольку они копировали вектор (передача по значению), но в моем сценарии я использую тот же вектор (без передачи по значению) . Но видя эту проблему. WRT ниже кода, я вижу ошибку
Всплывает окно с ошибкой утверждения отладки, и я получаю ошибку несовместимости векторных итераторов
во время выполнения, когда строка
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 = table.begin();
auto endIter = tabTypeIterVector[0];
for(auto itloop=startIter; itloop !=-endIter;itloop++)
{
}
}