Rajesh Shaw
Rajesh Shaw

Reputation: 557

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;
}

Upvotes: 7

Views: 935

Answers (1)

lubgr
lubgr

Reputation: 38267

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.

Upvotes: 15

Related Questions