社区
C++ 语言
帖子详情
stl中map查找与特定key差值最小的key-val,因为find函数只能查找与key相等的元素,请各位支招
shanyilei018
2012-03-22 07:27:46
rt
...全文
339
9
打赏
收藏
stl中map查找与特定key差值最小的key-val,因为find函数只能查找与key相等的元素,请各位支招
rt
复制链接
扫一扫
分享
转发到动态
举报
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是自动排序的,所以遍历一次就行了
【C++】
STL
容器 - set 集合容器 ⑦ (
查找
元素
- set#find
函数
| 获取
元素
个数 - set#count
函数
)
一、
查找
元素
- set#find
函数
1、
函数
原型 简介 2、代码示例 - set#find
函数
二、获取
元素
个数 - set#count
函数
1、
函数
原型 简介 2、代码示例 - set#find
函数
【C++】
STL
算法 -
查找
算法 (
查找
两个相邻重复
元素
- adjacent_find
函数
| 有序容器
中
通过二分法
查找
指定
元素
- binary_search
函数
)
一、
查找
两个相邻重复
元素
- adjacent_find
函数
1、
函数
原型分析 2、代码示例 二、有序容器
中
通过二分法
查找
指定
元素
- binary_search
函数
1、
函数
原型分析 2、二分
查找
时间复杂度分析 3、代码示例
【C++】
STL
容器 -
map
关联容器 ④ (
map
容器常用 api 操作 |
查找
指定
元素
| 获取
元素
个数 | 获取大于等于指定键的
元素
| 获取大于指定键的
元素
| 获取等于指定键 )
一、
查找
指定
元素
- std::
map
#find()
函数
1、
函数
原型简介 2、代码示例 二、获取
元素
个数 - std::
map
#count()
函数
1、
函数
原型简介 2、代码示例 三、获取大于等于指定键的
元素
- std::
map
#lower_bound
函数
1、
函数
原型简介 2、代码示例 四、获取大于指定键的
元素
- std::
map
#upper_bound
函数
1、
函数
原型简介 2、代码示例 五、获取等于指定键的
元素
- std::
map
#equal_range
函数
1、
函数
原型简介
C++
STL
中
在
map
或multi
map
中
查找
元素
C++
STL
中
在
map
或multi
map
中
查找
元素
STL
学习笔记:
map
容器里find
函数
的第三个参数实现原理,
函数
对象(仿
函数
)
最近在看
STL
里的
map
容器,一开始是打算直接存储一个键值对
map
<char*,int>类型,发现在调用
map
.find(
key
)是无法查到对应
元素
值,仔细debug一下,发现在存储
key
是存储的是char* 的地址,因此
map
.find()
函数
在调用内部自带的比较
函数
是直接比较指针的地址,这样就永远找不到合适的值。 首先解释
函数
对象: 重载
函数
调用操作符的类,其对象常称为
函数
对...
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章