Why the output is coming to be 50 it should have been 20.
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int v[] = {10, 20, 30, 50, 20, 70, 30};
int* i1;
i1 = std::min_element(v + 3, v + 4);
cout << *i1 << "\n";
return 0;
}
STL algorithms operate on half-open ranges , which are usually denoted as [first, last)
. This means the first
element is included in the range, the last
element is not included . Hence
[v + 3, v + 4)
specifies a range of length 1, and the only element in that range has the value 50
.The result of *std::min_element(v + 3, v + 4)
can be nothing but 50
.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.