ベクトル内のオブジェクトを見つける最良の方法を見つけようとしています。現在、このオブジェクトで検索を使用しようとしています:
class Category
{
public:
string modeType;
vector<VideoMode> videoModes;
Category(){}
Category(string name)
{
modeType = name;
}
friend bool operator== ( const Category &c1, const string &c2 )
{
return c1.modeType == c2;
}
};
これは私の発見です:
vector<Category>::iterator category = find(modes.begin(), modes.end(), Category("Name"));
コンパイルしようとすると、「== に対してタイプ "Category" の左側のオペランドを取る演算子が見つかりません」というエラーが表示されます。アルゴリズム ヘッダーを調べたところ、次の検索コードが見つかりました。
template<class _InIt,
class _Ty> inline
_InIt _Find(_InIt _First, _InIt _Last, const _Ty& _Val)
{ // find first matching _Val
for (; _First != _Last; ++_First)
if (*_First == _Val)
break;
return (_First);
}
ここからどこへ行くべきかはよくわかりません。アドバイスをいただければ幸いです。私はC ++をよく知りません:(