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
}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage