Удаление дубликатов из первого вектора посредством значений из второго вектора(без сортировки)
Всем добрый вечер. Нарисовалась такая проблема. Никак не могу удалить дубликаты значений в первом векторе. Сравниваюсь со значениями, которые находятся во втором векторе. Бегу и проверяю по одному значению весь вектор. Написал вот такую функцию. Предполагаю, что проблема с выходом за границы, но никак не могу победить... Подскажите пожалуйста, как решить проблему.
// v{1,3,5,6,7,6,4,8}
// v2{1,2,3,5,7,8}
void dropDupl(std::vector<int>& v, std::vector<int>& v2)
{
int cht = 0;
for (auto base = v.begin(); base != v.end(); )
{
for (auto base2 = v2.begin(); base2 != v2.end(); ++base)
{
cht++;
if (*base == *base2)
{
v.erase(base);
}
}
}
}