我一直在試圖找出什麼是在矢量中查找對象的最佳方法。目前,我嘗試使用找到這個對象上:在向量中查找對象C++
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);
}
我真的不知道在哪裏可以從這裏走,雖然任何建議會。成爲一個ppreciated,我不知道C++是很好:(
如果只訪問公共成員,它應該不是真正的朋友功能。使它成爲非朋友免費的功能,並且我會爲這兩個參數使用'Category'。如果用'string'調用它,它將被轉換。唯一可能會混淆的是字符串文字(至少在我們得到它們的後綴之前)。 – chris
將它更改爲字符串類別使其工作,並感謝您的建議。如果您將其作爲答案張貼,我可以接受它作爲最佳答案,謝謝! – WWaldo