我有 2 个向量
std::vector<MyObj> v;
std::vector<MyObj2> z;
向量中的对象都包含一个int
具有 ID 的对象。我想看看在浏览时是否v
有匹配id
z
所以我认为我可以使用 `std::find_if 和 Lambda。
for (int i=0; i < _z.size(); i++)
{
MyObj2 _g = _z.at(i);
auto iter = std::find_if(v.begin(), v.end(), [this](MyObj o)
{
if (o.getID() == _g.getID())
{
std::cout << "we have a match" << std::endl;
}
else
{
std::cout << "we DO NOT have a match" << std::endl;
}
});
}
但我收到一个我不明白的错误。
43:成员函数“getID”不可行:“this”参数的类型为“const MyObj2”,但函数未标记为 const
我不明白什么必须标记为 const 以及为什么?
我需要在我的 .hpp 中类似的东西?:
MyObj2& operator= (const MyObj2&);
MyObj2& operator== (const MyObj2&);