微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 搜索具有上限和下限的地图

STL新手问题:

关于函数std :: map :: upper_bound和std :: map :: lower_bound是否有效指定地图中实际不存在的键?

std::map<int,int> intmap;
std::map<int,int>::iterator it1,it2;

intmap[1]=10;
intmap[2]=20;
intmap[4]=40;
intmap[5]=50;

it1=intmap.lower_bound (3);  // Is this valid?
it2=intmap.upper_bound (3);   // Is this valid?

谢谢…

解决方法

是的,他们都是有效的.

map::lower_bound将点返回指向不小于键的第一个元素的迭代器.

map::upper_bound返回指向大于键的第一个元素的迭代器.

intmap[1]=10;
intmap[2]=20;
intmap[4]=40;   // <<---both lower_bound(3)/upper_bound(3) will points to here
intmap[5]=50;

lower_bound / upper_bound返回值将被插入的位置.

注意,如果要检查值键是否为地图,可以使用std::map::find

原文地址:https://www.jb51.cc/c/115292.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐