私は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&);