我一直在试图找出在向量中找到对象的最佳方法。目前我正在尝试在这个对象上使用 find :
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"));
当我尝试编译时出现错误说“没有找到运算符,它为“==”采用“类别”类型的左侧操作数我查看了算法标题并找到了查找代码:
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++ :(