map::lower_bound/upper_bound的使用
发布日期:2022-02-10 13:35:52 浏览次数:22 分类:技术文章

本文共 976 字,大约阅读时间需要 3 分钟。

如题,原来会这两个函数的用法的,但是后来又忘了,这说明,我的理解还不够,所以我今天又折腾了一下

首先看一下函数原型:

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;

看一个例子:

// map::lower_bound/upper_bound#include 
#include
int main (){ std::map
mymap; std::map
::iterator itlow,itup; mymap['a']=20; mymap['b']=40; //注释看看 mymap['c']=60; mymap['d']=80; mymap['e']=100; itlow=mymap.lower_bound ('b'); // 寻找 'b' <= ? itup=mymap.upper_bound ('d'); // 寻找 'c' < ? mymap.erase(itlow,itup); // erases [itlow,itup) // print content: for (std::map
::iterator it=mymap.begin(); it!=mymap.end(); ++it) std::cout << it->first << " => " << it->second << '\n'; return 0;}

输出:

a => 20e => 100

好了,相信看了程序之后就一目了然,但是要怎么记住呢?

一句话解释:

lower_bound(k)寻找  k <= ? 并返回其迭代器 

upper_bound(k)寻找 k < ? 并返回其迭代器 

(其中 ?为那个最接近的key值)

转载地址:https://blog.csdn.net/zoopang/article/details/13035825 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:力扣字符串组11题整数转罗马数字
下一篇:力扣字符串17题电话号码的字母组合

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月08日 21时21分24秒