【发布时间】:2019-12-31 15:06:39
【问题描述】:
min_element() 应该返回一个指向数组或向量中最小元素的指针,但这里它返回的是具有最小值的元素的位置。为什么会这样?
抱歉这个愚蠢的问题,我是初学者。
int n; cin>>n;
vector<int> arr(n);
for(int i=0;i<n;i++)
cin>>arr[i];
int minElementIndex = min_element(arr.begin(),arr.end()) - arr.begin();
cout<<minElementIndex;
【问题讨论】:
-
为什么它返回元素的位置最小值 -- 它没有这样做。更仔细地看线。除了打电话给
std::min_element,还有更多事情要做 -
你认为从
min_element()给出的迭代器中减去arr.begin()会怎样? -
只是想说,这个问题不应该被否决——虽然它是一个简单的错误,但问题的形成得体并且具有最低限度的可重现代码sn- p.