I have a vector v of objects A in a Class B where each object has a member: int level. I want to find the maximum value of the level of all the objects in the vector v. To this end I use the function:
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());
}
However I get the error: Assertion Failed, vector iterator not deferencable. Should I define an int iterator additionally? Is there a better way to implement the function I want?