C++:最大值最小值及其索引

发布时间 2023-12-23 19:19:14作者: Toriyung

std::max_element和std::min_element 是 C++ 标准库 <algorithm> 中的函数,可以得到数组和向量(vector)的最值及其索引

int card[6]={1,2,3,4,5,6}
int maxValue = *max_element(card.begin(),card.end());
int minValue = *min_element(card.begin(),card.end());
int maxPosition = max_element(card,card+6) - card; 
int minPosition = min_element(card,card+6) - card;


vector<int> card;
int maxValue = *max_element(card.begin(),card.end()); 
int minValue = *min_element(card.begin(),card.end());
int maxPosition = max_element(card.begin(),card.end()) - card.begin(); 
int minPosition = min_element(card.begin(),card.end()) - card.begin();

 

函数的参数是搜索范围,如上面代码里的是从起始到结尾,函数的返回值是获取最值的地址。

由于数组和向量在内存中的地址是连续的,所以可以通过得到地址减去起始地址得到相对地址,也就是在数组(向量)中的索引。

而对地址的取值也就是得到对应最值