只想刪除重複項。池是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 2013-05-10 06:01:33
Eww,那些副本...... – 2013-05-10 06:03:54
這樣做比較容易(也許比它當前所用的'O(n^2)'方式更快),將所有元素添加到「std :: set」,然後回到'std :: vector'。 – Yuushi 2013-05-10 06:03:55