如果以下代码返回向量中最小值的索引:
std::min_element(prices.begin(), prices.end()) - prices.begin();
那么为什么这段代码不会返回向量中最大值的索引?
std::max_element(prices.begin(), prices.end()) - prices.begin();
编辑:示例矢量。
vector<int> prices{30, 20, 18, 15, 50}
感谢。
答案 0 :(得分:0)
代码工作正常并且符合预期。 第一个元素的索引为零
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> prices{30, 20, 18, 15, 50};
int min_index = std::min_element(prices.begin(), prices.end()) - prices.begin();
int max_index = std::max_element(prices.begin(), prices.end()) - prices.begin();
std::cout<<"Minimum position: "<<min_index+1<<endl;
std::cout<<"Minimum position: "<<max_index+1<<endl;
}
在 输出: 最低职位:4
最低职位:5