Chỉ muốn xóa các mục trùng lặp. Hồ bơi là vector<pair<string, int>>
nhưng tôi dường như bỏ lỡ một số yếu tố khi bắt đầu vectơ bằng cách nào đó. Bất cứ ai có thể xác minh logic của việc loại bỏ? Cảm ơn :)Xoá mục nhập trùng lặp trong 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;
}
Bạn có phiền không nếu nó được sắp xếp? – chris
Eww, các bản sao đó ... –
Cách dễ dàng hơn (và có khả năng nhanh hơn cách 'O (n^2)' hiện đang thực hiện) khi thực hiện việc này là thêm tất cả các phần tử vào tập lệnh 'std :: set' và sau đó quay lại 'std :: vector'. – Yuushi