Удаление дубликатов в отсортированном Vector с условием С++

У меня есть вектор структур. Я хочу убрать дубликаты структур из этого вектора но убрать только те структуры у которых index != "H". Для удаления дубликатов использую bool operator. А вот по условию index != "H" не знаю как сделать. Подскажите пожалуста.

    typedef struct aspect {
    string index;
    string type;
    string drob;
    double d_aspect;
    string s_aspect;
}asp;

    bool operator==(const asp& a, const asp& b)
{
    return a.d_aspect == b.d_aspect;
}

    sort(aspectFile.begin(), aspectFile.end(), cmp);

    aspectFile.resize(unique(aspectFile.begin(), aspectFile.end()) - aspectFile.begin());

Ответы (1 шт):

Автор решения: Chorkov

используйте remove_if

 bool is_H(const asp& a) { return a.index=="H"; } // условие удаления

 aspectFile.erase( std::remove_if( aspectFile.begin(), aspectFile.end() ), aspectFile.end() );

Список стандартных алгоритмов (функций работающих с итераторами): https://ru.cppreference.com/w/cpp/algorithm

→ Ссылка