我在将对象保存在向量中时遇到了一些麻烦,我想我需要对操作员做点什么。
std::vector<Foo> vec;
Foo a = Foo();
vec.push_back(a);
...
if(std::find(vec.begin(), vec.end(), a) < vec.end()) {
// Found
} else {
// Not found
}
Foo 需要 operator== 来编译,我这样做
bool Foo::operator==(const Foo& rhs) {
return this == &rhs;
}
但据我了解,vec.push_back
, 将复制 Foo 对象,因此我的 == 将返回 false。
因此,每当我进行搜索时,它就永远找不到。
在这里做什么是正确的?我希望避免切换到指针向量。