社区
C++ 语言
帖子详情
急问:hash_map的find用法
Efcndi
2008-02-04 01:31:33
我已经使用insert来构造了一个hash_map了。
现在需要去读hash_map的内容,但是key值是有重复的,
请教如何用一个iterator把同一个key值hash到的那个“bucket”全都读出来。
差不多应该是这个样子:
iterator it = map.find(key); //同一个key会对应多个数据项,所以要iterator来读。
这个iterator应该怎么写,如何枚举找到的数据项?
谢谢!
...全文
1690
12
打赏
收藏
急问:hash_map的find用法
我已经使用insert来构造了一个hash_map了。 现在需要去读hash_map的内容,但是key值是有重复的, 请教如何用一个iterator把同一个key值hash到的那个“bucket”全都读出来。 差不多应该是这个样子: iterator it = map.find(key); //同一个key会对应多个数据项,所以要iterator来读。 这个iterator应该怎么写,如何枚举找到的数据项? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
soji
2008-04-24
打赏
举报
回复
如果key不同,insert时会把原有的值冲掉吧?
Efcndi
2008-02-04
打赏
举报
回复
用hash_multimap解决了。XX。
Efcndi
2008-02-04
打赏
举报
回复
我不太相信你有能力实现正确的hash函数。
--------------------------------------
why not?两年来我一直在做ACM算法竞赛题。^_^
不过以前用的hash模块都是自己写的,既不统一也容易出错,现在想改用模板库。
问题就是如何枚举find(key)找到的多个数据项?
一个简单的demo:
hash_map<int, string> map;
map.inster(pair<int, string>(0, "000"));
map.inster(pair<int, string>(1, "111"));
map.inster(pair<int, string>(1, "11"));
map.inster(pair<int, string>(1, "1"));
find(1); 如何把根据key=1把“1”、“11”、“111”一一枚举出来?
ltc_mouse
2008-02-04
打赏
举报
回复
找了个,不知道有没用:
multimap & hash_multimap
taodm
2008-02-04
打赏
举报
回复
如果程序对速度有很严格的要求,就应该优先考虑非hash的multimap。
我不太相信你有能力实现正确的hash函数。
Efcndi
2008-02-04
打赏
举报
回复
我这种情况用hash_map是可以的,只要把bucket设大一点就可以了。
note: “程序对速度有很严格的要求,即要求速度越快越好”
应该使用hash_multimap?
请教大家如何根据key来查找并枚举数据项,LZ的各位再解释得清楚些?谢谢。
Supper_Jerry
2008-02-04
打赏
举报
回复
在容器中不包含key值时,insert函数和[]操作符的功能差不多。但是当容器中元素越来越多,每个桶中的元素会增加,为了保证效率,hash_map会自动申请更大的内存,以生成更多的桶。因此在insert以后,以前的iterator有可能是不可用的。
http://blog.csdn.net/gzblog/archive/2008/01/20/2054354.aspx
taodm
2008-02-04
打赏
举报
回复
hash_multimap equal_range接口
strangefay
2008-02-04
打赏
举报
回复
楼上正解~~~
strangefay
2008-02-04
打赏
举报
回复
楼上正解
ltc_mouse
2008-02-04
打赏
举报
回复
现在需要去读hash_map的内容,但是key值是有重复的
-------------------------
insert之后,hash map中不该含有重复的key值吧? 不然,就不叫key了吧...
babyvox1999
2008-02-04
打赏
举报
回复
t_map_lines::iterator it;
it = m_lines.find(nLine);
if (it == m_lines.end())
{
查找失败;
return false;
}
JavaScript中Location对象详解
讲解js中window中的Location对象的所有属性和方法的使用。 属性如下:
hash
:返回一个URL的锚部分 host:返回一个URL的主机名和端口 hostname:返回URL的主机名 href:返回完整的URL pathname:返回的URL路径名。 ...
__gnu_cxx::
hash
_
map
使用中的一些问题
[STL] __gnu_cxx::
hash
_
map
使用中的一些问题, 今天看《libstdc++ manual 20110201》中提到这个
hash
_
map
是为了向后兼容SGI/HP的代码,但是已经被废弃了,取而代之的是C++0x中的unordered_
map
/unordered_multi
map
,在tr1文件夹中(老版本的编译器一般不带这个文件夹)。 ====================
stl中
map
,unordered_
map
.
hash
_
map
插入,查询,对比测试结果
map
:
map
内部实现了一个红黑树 所有元素都是有序的。
hash
_
map
: unordered_
map
: 内部实现了一个哈希表 其元素的排列顺序是无序的。 std::
map
所有元素都是有序(红黑树) tr1::unordered_
map
元素的排列顺序是无序的(哈希表) 测试一:O1编译 插入10000000次
map
类型 插入int 插入std::string 全部查找int 全部查找std::string std::
map
10.8376 sec 21.5493 sec 5.74504 sec 15
C++11中std::unordered_
map
的使用
C++11中std::unordered_
map
的使用
std::unordered_
map
std::unordered_
map
unordered_
map
<key,T>类似于python中的字典,是由一一对应的键值对组成的集合,内部使用
hash
原理构造 一些
用法
: Key: .first(->first) Value: .second(->second) 插入数据:.emplace .insert 判断内部是否为空:.empty(返回bool) 返回容器大小...
C++ 语言
64,662
社区成员
250,515
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章