gpt4 book ai didi

c++ - 不能正确使用 min_element()

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:36:44 24 4
gpt4 key购买 nike

我在使用 C++ 算法 header 中的 min_element() 时遇到问题。

代码如下:

int a[5] = {4, 1, 2, 3, 4};

for (int j = n - 1; j >= 0; j--) {
for (int i = 0; i <= j; i++) {
int *lowest = min_element(a+i, a+j); //get min element in range
cout << "A[" << i << "] to A[" << j << "]"
<< "lowest =" << *lowest << endl;
}
}

输出如下

A[0] to A[4]lowest =1
A[1] to A[4]lowest =1
A[2] to A[4]lowest =2
A[3] to A[4]lowest =3
A[4] to A[4]lowest =4
A[0] to A[3]lowest =1
A[0] to A[2]lowest =1
"A[0] to A[1]lowest =4"
A[0] to A[0]lowest =4

对于 i=0 和 j=1,它打印“4”作为输出,而它应该是“1”。

谁能解释一下?

最佳答案

STL 算法中的范围是半开的,即不包括您指定的最后一个元素;出于这个原因,如果您指定 i=0j=1,您将只考虑第一个元素。

关于c++ - 不能正确使用 min_element(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21671584/

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