本文主要是介绍map::lower_bound/upper_bound的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如题,原来会这两个函数的用法的,但是后来又忘了,这说明,我的理解还不够,所以我今天又折腾了一下
首先看一下函数原型:
- iterator upper_bound (const key_type& k);
- const_iterator upper_bound (const key_type& k) const;
类似的
- iterator lower_bound (const key_type& k);
- const_iterator lower_bound (const key_type& k) const;
看一个例子:
-
- #include <iostream>
- #include <map>
-
- int main ()
- {
- std::map<char,int> mymap;
- std::map<char,int>::iterator itlow,itup;
-
- mymap['a']=20;
- mymap['b']=40;
- mymap['c']=60;
- mymap['d']=80;
- mymap['e']=100;
-
- itlow=mymap.lower_bound ('b');
- itup=mymap.upper_bound ('d');
-
- mymap.erase(itlow,itup);
-
-
- for (std::map<char,int>::iterator it=mymap.begin(); it!=mymap.end(); ++it)
- std::cout << it->first << " => " << it->second << '\n';
-
-
-
- return 0;
- }
输出:
好了,相信看了程序之后就一目了然,但是要怎么记住呢?
一句话解释:
lower_bound(k)寻找 k <= ? 并返回其迭代器
upper_bound(k)寻找 k < ? 并返回其迭代器
(其中 ?为那个最接近的key值)
这篇关于map::lower_bound/upper_bound的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!