在对象向量中查找最大值
Find max value in a vector of objects
我在类 B 中有一个对象 A 的向量 v,其中每个对象都有一个成员:int 级别。我想找到向量 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());
}
但是我收到错误:断言失败,矢量迭代器不可延迟。我应该另外定义一个 int 迭代器吗?有没有更好的方法来实现我想要的功能?
我想你的问题出在最后一行。 空向量将导致该行出现此错误。
实际上,您根本没有填满levels
。它应该是==levels.end()
而不是!=levels.end()
另外,请查看此处的示例代码,并尝试使用用户指定的比较函数对象而不是多个副本。
template <class ForwardIterator, class Compare>
ForwardIterator max_element ( ForwardIterator first, ForwardIterator last, Compare comp );
这
似乎是您在解决方案中遇到的确切问题 http://www.cplusplus.com/forum/general/18226/
相关文章:
- 在二维向量的每一列中查找最大值
- 用于在具有更新查询的二维矩阵中查找最大值的最佳数据结构
- 性能:在 ARR(允许平局)中查找最大值的索引
- 使用动态内存分配和指针查找最大值、最小值和平均值
- C++ 在 2D std::vector 中查找最大值的位置
- 在对象向量中查找最大值
- 查找最大值并删除 2D 数组中的该行.C++
- C++查找最大值和最小值的功能
- 在字符串中查找最大值
- 使用数组查找最大值
- C++函数在一个双精度数组中查找最大值
- 如何查找最大值和最小值
- C++:在数组中查找最大值的问题
- Std::数组查找最大值函数
- 在数组中查找最大值,从索引的两侧增加值
- 数组函数查找最大值
- 正在数组中查找最大值
- 在二维数组的矩形区域内查找最大值的快速方法
- 浮点比较C++-查找最大值
- 查找最大值和最小值