Can';t正确使用最小元素() 我在C++中的算法头中有了 min元素()/>代码的问题。

Can';t正确使用最小元素() 我在C++中的算法头中有了 min元素()/>代码的问题。,c++,C++,代码如下: 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[" <<

代码如下:

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;
    }
}
对于i=0和j=1,它将“4”打印为输出,而它应该是“1”


有人能解释一下吗?

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

@user3291897:很高兴它有帮助!你可以回答我的问题(谢谢!)
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