Удаление вектора из двумерного массива векторов
Есть два двумерных вектора которые перебираются через foreach и если значения совпали, то вектор в векторе удаляется (удаляю целый вектор т.к. он сам состоит из TCHAR), но выдаётся ошибка:
"отсутствуют экземпляры перегруженная функция "std::vector<_Tp, _Alloc>::erase [с _Tp=std::vector<TCHAR, std::allocator<wchar_t>>, _Alloc=std::allocator<std::vector<TCHAR, std::allocator<wchar_t>>>]", соответствующие списку аргументов"
//copy arrays for don't damage data (I think it's safer)
vector<vector<TCHAR>> proccessNow = activeProccessesNow;
vector<vector<TCHAR>> proccessPreviously = activeProccessesPreviously;
for (auto Now : activeProccessesNow)
{
int i = 0;
for (auto Previously : activeProccessesPreviously)
{
int j = 0;
if (Previously == Now)
{
proccessNow.erase(i);
proccessPreviously.erase(j);
}
else{}
}
}
Ответы (1 шт):
Автор решения: Mak
→ Ссылка
плюсам не нравится когда в erase передают просто переменную, поэтому код пришлось усложнить, просто добавив vector.begin() и добавляем нашу переменную
proccessNow.erase(next(proccessNow.begin(),i));
proccessPreviously.erase(next(proccessPreviously.begin(),j));
UPD: Спасибо @Mikhailo за исправление неточного ответа и улучшение кода)