找出给定范围内向量中的最大元素

3

我曾试图使用max函数,但它需要迭代器,即A.begin和A.end,但对于我的程序,我想要查找一个范围,比如从i到x。我尝试阅读文档,但没有找到解决方案。如果有帮助,将不胜感激。谢谢。


5
vector 提供随机访问迭代器,因此您可以轻松地将索引转换为迭代器 items.begin() + i - user7860670
如果您能提供一些真实的代码,那将更好。 - fitzbutz
1
这就是所有标准算法函数的好处,它们接受一个范围。迭代器不仅仅可以是开头和结尾,它可以是中间的任何东西。 - Some programmer dude
可能是Can I increment an iterator by just adding a number?的重复问题。 - Andre Kampling
1个回答

9
你不是在寻找最大值,而是在寻找std::max_element函数。
使用方法如下:
std::vector<int> v;
// fill it
auto max_it = std::max_element(v.begin()+i, v.end());

并检查范围 [i,j):

auto max_it = std::max_element(v.begin()+i, v.begin()+j);

在这里,max_it 是一个迭代器,可以从中获取数字:
int max_number = *max_it;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接