Doppelte Einträge in Vektoren entfernen
Ich versuche, Objekte mit class (Sample) hinzuzufügen, meinen Vektor zu sortieren und anschließend doppelte Einträge in meinem Vektor zu entfernen.
Meine Codes (dies ist nur ein Teil meiner Codes in meinem Programm)
vector<Sample> sampleVector;
sort(sampleVector.begin(), sampleVector.end());
sampleVector.erase(std::unique(sampleVector.begin(),sampleVector.end(),sampleVector.end()));
Als ich jedoch versuchte, mein Programm auszuführen, wird dieser Fehler angezeigt.
Type 'std::__1::__wrap_iter<Sample *>' does not provide a call operator
und mir wurde klar, dass der Fehler höchstwahrscheinlich durch diese Zeile verursacht wird
sampleVector.erase(std::unique(sampleVector.begin(),sampleVector.end(),sampleVector.end()));
Was kann ich tun, um doppelte Einträge in meinem Vektor zu entfernen? Danke im Voraus
Eine andere Sache, die ich versucht habe, aber es funktioniert nicht.
bool myfunction (Sample *i,Sample *j) {
return (i==j);
}
std::vector<Sample>::iterator it;
vector<Sample> sampleVector;
it = std::unique(sampleVector.begin(), sampleVector.end(),myfunction);
for (it=sampleVector.begin(); it!=sampleVector.end(); ++it) {
std::cout << *it << " "; <-- error must change it to &*it
}