stl中map查找与特定key差值最小的key-val,因为find函数只能查找与key相等的元素,请各位支招

shanyilei018 2012-03-22 07:27:46
rt
...全文
338 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shanyilei018 2012-03-23
  • 打赏
  • 举报
回复
lower_bound Return iterator to lower bound (public member function)
upper_bound Return iterator to upper bound (public member function)

果然,还是没看仔细阿,谢谢几位。
nice_cxf 2012-03-23
  • 打赏
  • 举报
回复
就算不用成员函数,自己写二分查找也不是很麻烦
ohayou 2012-03-23
  • 打赏
  • 举报
回复
我敢说你没仔细看完map的成员函数
lower_bound Return iterator to lower bound (public member function)
upper_bound Return iterator to upper bound (public member function)
shanyilei018 2012-03-23
  • 打赏
  • 举报
回复
谢谢各位,两种方法我都试一下
Saingel 2012-03-22
  • 打赏
  • 举报
回复
很简单,
因为map key是排序,
所以先插入你要比较的值,然后find这个值,之后迭代器前移后移,比较前后两者元素哪个符合条件即可,
当然要先找一找这个特定key值在map中有没有
pathuang68 2012-03-22
  • 打赏
  • 举报
回复
动动脑筋,这个不算难
taodm 2012-03-22
  • 打赏
  • 举报
回复
lower_bound,upper_bound中间一个有一个可用。然后,怎么修正结果就自己想吧。
shanyilei018 2012-03-22
  • 打赏
  • 举报
回复
请问2楼,我现在要查找的不是key,而是和key差值最小的key-val元素组,也就是find()函数不可直接运用
巫师 2012-03-22
  • 打赏
  • 举报
回复
c++map是以红黑树实现的,key是自动排序的,所以遍历一次就行了

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧