usuń wpis duplikatów w wektorach
Próbuję dodawać obiekty za pomocą klasy (Sample), sortować mój wektor, a następnie usuwać duplikaty wpisów w moim wektorze.
moje kody (to tylko część moich kodów w moim programie)
vector<Sample> sampleVector;
sort(sampleVector.begin(), sampleVector.end());
sampleVector.erase(std::unique(sampleVector.begin(),sampleVector.end(),sampleVector.end()));
ale jednak, gdy próbowałem uruchomić mój program, pokazuje ten błąd.
Type 'std::__1::__wrap_iter<Sample *>' does not provide a call operator
i zdałem sobie sprawę, że najprawdopodobniej błąd jest spowodowany przez tę linię
sampleVector.erase(std::unique(sampleVector.begin(),sampleVector.end(),sampleVector.end()));
Co powinienem zrobić, aby sprawić, by działało usunięcie zduplikowanych wpisów w moim wektorze? z góry dziękuję
Kolejna rzecz, którą próbowałem, ale nie działa.
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
}