remova a entrada de duplicatas em vetores
Eu estou tentando adicionar objetos usando a classe (exemplo), classificar meu vetor e depois remover entradas duplicadas no meu vetor.
meus códigos (isso é apenas parte dos meus códigos no meu programa)
vector<Sample> sampleVector;
sort(sampleVector.begin(), sampleVector.end());
sampleVector.erase(std::unique(sampleVector.begin(),sampleVector.end(),sampleVector.end()));
mas no entanto, quando eu tentei executar o meu programa, mostra esse erro.
Type 'std::__1::__wrap_iter<Sample *>' does not provide a call operator
e percebi que provavelmente o erro é causado por essa linha
sampleVector.erase(std::unique(sampleVector.begin(),sampleVector.end(),sampleVector.end()));
O que devo fazer para que eu possa trabalhar para remover entradas duplicadas no meu vetor? desde já, obrigado
Outra coisa que tentei, mas não está funcionando.
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
}