#include<iostream>
#include<algorithm>
int main()
{
int a[3]={5,3,4};
std::cout<<*std::max_element(&a[1],&a[2])<<"\n";
return 0;
}
此代码显示3作为输出。
答案 0 :(得分:4)
你应该写
std::cout << *std::max_element( a, a + 3 ) << "\n";
或者包含标题<iterator>
并写入
#include <iterator>
//...
std::cout << *std::max_element( std::begin( a ), std::end( a ) ) << "\n";
算法的范围指定为[first, last )
,其中迭代器last
指向的元素不包含在范围内。
因此,对于算法[&a[1],&a[2] )
的这些参数,元素a [2]将不参与与数组的其他元素的比较。此范围仅指定数组的一个元素a[1]
。
考虑数组的索引以0开头。