Просто хочу удалить дубликаты. Бассейн vector<pair<string, int>>
, но я как будто пропустил некоторые элементы в начале вектора. Может ли кто-нибудь проверить логику удаления? Спасибо :)Удалить повторяющиеся записи в C++-векторе
Pool Master::eliminateDuplicates(Pool generation)
{
for(int i = 0; i < generation.size(); i++)
{
string current = generation.at(i).first;
for(int j = i; j < generation.size(); j++)
{
if(j == i)
{
continue;
}
else
{
string temp = generation.at(j).first;
if(current.compare(temp) == 0)
{
Pool::iterator iter = generation.begin() + j;
generation.erase(iter);
}
}
}
}
return generation;
}
Не возражаете, если он будет отсортирован? – chris
Eww, те копии ... –
Простой (и, скорее всего, более быстрый способ, чем метод 'O (n^2), который он в настоящее время принимает) заключается в добавлении всех элементов в' std :: set', а затем вернуться к 'std :: vector'. – Yuushi