gpt4 book ai didi

c++ - 意外的 max_element 行为

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:22:25 25 4
gpt4 key购买 nike

#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 作为输出。

最佳答案

你应该写

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 开始。

关于c++ - 意外的 max_element 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35424026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com