У меня проблема в C ++. Допустим, у меня есть 3 вектора (не берите в голову неправильное определение, просто пример)
a = {"a", "b"}, b = {"b", "c"}, c = {"b", "c"}
Как я могу наиболее быстро и эффективно удалить все дубликаты из них, поэтому результат будет следующим. В одном векторе нет дубликатов, и вектор не сортируется по алфавиту.
a = {"a"}, b = {}, c = {}
Редактировать: я пробовал это:
for (int i = 0; i < a.size(); i++)
{
int i1 = findIndex(b, a[i]);
int i2 = findIndex(c, a[i]);
if (i1 != -1)
{
a.erase(a.begin() + i);
b.erase(b.begin() + i1);
}
if (i2 != -1)
{
a.erase(a.begin() + i);
c.erase(b.begin() + i2);
}
}
, где findIndex:
int findIndex(vector<string> vec, string s)
{
for (int i = 0; i < vec.size(); i++)
{
if (vec[i] == s)
{
return i;
}
}
return -1;
}