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