2016-07-07 94 views

回答

5

使用以下:

std::max_element(vec.begin() + m, vec.begin() + n); 

假设m < nn <= vec.size(),其中vecstd::vector对象。

这将返回一个迭代器到指定范围内的最大值元素,以获得相应的索引使用it - vec.begin(),其中it是最大元素迭代器。

+0

那我怎么知道哪个元素是最大元素? – Resorter

+0

'std :: max_element'将迭代器返回到范围中的最大元素。 – ArchbishopOfBanterbury

+0

但是我需要知道这个元素的位置,例如,我想知道它是第一个,第二个还是第三个元素。我想知道指定位置的整数。 – Resorter

2

此签名告诉你std::max_element是一个接受任何类型参数的模板,只要它符合前向迭代器的要求并返回相同的类型即可。您只需传入迭代器,它会将迭代器返回到范围中找到的最大元素。您可以解除引用以获取该值本身。因此

const auto max_iterator = std::max_element(v.begin() + m, v.begin() + n); 
const auto max_value = *i; 

必须小心,以避免其中m大于或等于n的情况。

相关问题