В отладчике я обнаружил, что Data.vertices.begin()
и Data.vertices.end()
не рассчитываются заранее в цикле for. Поэтому он запускает цикл, но выдает ошибку времени выполнения приращения итератора.
void pre_processing::removeOutlier(Import & Data, float radius)
{
std::vector<Vertex>::iterator itr = Data.vertices.begin();
while (itr != Data.vertices.end())
{
if (calAbsDistance(*itr) < 20.0f)
{
Data.vertices.erase(itr);
}
++ itr;
}
}