首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >map中的map ( Map as key)

map中的map ( Map as key)
EN

Stack Overflow用户
提问于 2011-12-01 20:19:14
回答 2查看 304关注 0票数 1

我已经在下面的方式中创建了地图。例:首先映射;我必须根据我的要求创建第二个映射到下面的方式。

第二张地图。因此first是第二个映射中的键值。

我已经在两个映射中都插入了数据。first.insert("Test1",1);second.insert(first,2)。

首先,我只想知道实现的方式是否正确。或者我应该使用另一个stl?

我面临着这段代码的一个问题(不是合规性问题)。如果我以下面的方式从数据库获取数据,那么值不会插入到第二个映射中。

first.insert("Test1",2);second.insert(第一,1)。但我认为它应该进入map,因为("Test1“&& 1)和("Test”&& 2)都是第二个map的不同键。

EN

回答 2

Stack Overflow用户

发布于 2011-12-01 20:35:16

为什么要使用map作为键类型?密钥应该很小,因为你不能保证STL会复制多少个密钥。使用(可能很大的) std::map作为键将会降低应用程序的性能。

票数 1
EN

Stack Overflow用户

发布于 2011-12-01 20:51:20

首先,对于"STL",让我引用来自##c++ at freenode的!stl:

‘`STL’有时用于表示:( 1 ) C++标准库;( 2 )惠普设计的库;(3)基于2的1的部分;(4) 1、2或3的特定供应商实现;(5) 2的基本原则。因此,该术语非常模糊,必须极其谨慎地使用。如果你的意思是1并且坚持缩写,那么"stdlib“是一个更好的选择。

下一步:当然你可以使用map作为key,但是可能没有它的比较器(我怀疑map有std::less ...)。但请记住--比较器不会检查参数是否相等-它会检查第一个参数是否小于/大于第二个参数,因为使用“小于”可以更容易地对所有可能的关系进行建模:

代码语言:javascript
复制
a == b <=> !(a < b) && !(b < a)

现在,more ontopic

从您所写的内容来看,我不太明白使用map的意义。你能提供一些测试用例吗?那么我就可以给你一个完整的答案了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8341283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档