简体   繁体   中英

Finding minimum element in array using STL in C++

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM