我有一個類B中的對象A的向量v,其中每個對象都有一個成員:int level。我想找到的向量v的所有對象的級別的最大值。爲此我使用的功能:在對象的向量中查找最大值
int B::findMaxLevel()
{
vector<int> levels;
vector<A*>::iterator it;
for(it=v.begin();it!=v.end();++it)
{
if(find(levels.begin(), levels.end(), (*it)->getLevel())!=levels.end())
levels.push_back((*it)->getLevel());
}
return *max_element(levels.begin(), levels.end());
}
但是我得到的錯誤:斷言失敗,矢量迭代器不deferencable。 我應該另外定義一個int迭代器嗎?有沒有更好的方法來實現我想要的功能?
您在哪一行收到此錯誤消息? – RedX
如果'v'是空的,然後'levels'變空了,'max_element'返回'levels.end()'? – Mohammad
'max_element'看起來像什麼? –