Po prostu chcesz usunąć duplikaty. Pula to vector<pair<string, int>>
, ale wydaje mi się, że brakuje mi niektórych elementów na początku wektora. Czy ktokolwiek może zweryfikować logikę usunięcia? Dzięki :)Usuń zduplikowane wpisy w C++ Vector
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;
}
Czy masz coś przeciwko sortowaniu? – chris
Eww, te kopie ... –
Łatwiejszym (i prawdopodobnie szybszym sposobem niż sposób 'O (n^2)', który obecnie bierze) z tego jest dodanie wszystkich elementów do 'std :: set', a następnie z powrotem do 'std :: vector'. – Yuushi