gpt4 book ai didi

c++ - 删除 vector 中的重复条目

转载 作者:行者123 更新时间:2023-11-30 04:12:06 24 4
gpt4 key购买 nike

我正在尝试使用类(示例)添加对象,对我的 vector 进行排序,然后删除我的 vector 中的重复项。

我的代码(这只是我程序中的部分代码)

vector<Sample> sampleVector;
sort(sampleVector.begin(), sampleVector.end());
sampleVector.erase(std::unique(sampleVector.begin(),sampleVector.end(),sampleVector.end()));

但是当我尝试运行我的程序时它显示了这个错误。

Type 'std::__1::__wrap_iter<Sample *>' does not provide a call operator

我意识到错误很可能是由这一行引起的

sampleVector.erase(std::unique(sampleVector.begin(),sampleVector.end(),sampleVector.end()));

我应该怎么做才能让它能够删除 vector 中的重复条目?提前致谢

我试过另一件事,但没有用。

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
}

最佳答案

错位的括号。更正:

sampleVector.erase( std::unique(sampleVector.begin(),sampleVector.end()),
sampleVector.end() );

我不怪你被发现了。 C++ 编译器错误令人发指。

关于c++ - 删除 vector 中的重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19944899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com