使用map自动排序的特性获取最大值最小值以及key值对应的value

map在插入键值对时会按照key值从小到大自动排序,现在需要获取最大key对应的value;
或者最小key对应的value

最大key对应的valuemap最后一组数据,使用迭代器iterator或者反向迭代器reverse_iterator获取
最小key对应的valuemap第一组数据

初始化一个map

#include <map>
...
map<int,int> map_test;
map_test.insert(pair<int, int>(2,3));
map_test.insert(pair<int, int>(1,4));
map_test.insert(pair<int, int>(0,5));

1. 获取最大key对应的value

(1)使用迭代器获取最后一组数据

map<int,int>::iterator it1 = map_test.end();
it1--;
int max_value = it1->second;

(2)使用反向迭代器

map<int,int>::reverse_iterator it2 = map_test.rbegin();
max_value = it2->second;
...

2. 获取最小key对应的value

map<int,int>::iterator it1 = map_test.begin();
int max_value = it1->second;
...

猜你喜欢

转载自blog.csdn.net/guanjing_dream/article/details/127645970
今日推荐