我已经在下面的方式中创建了地图。例:首先映射;我必须根据我的要求创建第二个映射到下面的方式。
第二张地图。因此first是第二个映射中的键值。
我已经在两个映射中都插入了数据。first.insert("Test1",1);second.insert(first,2)。
首先,我只想知道实现的方式是否正确。或者我应该使用另一个stl?
我面临着这段代码的一个问题(不是合规性问题)。如果我以下面的方式从数据库获取数据,那么值不会插入到第二个映射中。
first.insert("Test1",2);second.insert(第一,1)。但我认为它应该进入map,因为("Test1“&& 1)和("Test”&& 2)都是第二个map的不同键。
发布于 2011-12-01 20:35:16
为什么要使用map作为键类型?密钥应该很小,因为你不能保证STL会复制多少个密钥。使用(可能很大的) std::map作为键将会降低应用程序的性能。
发布于 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 ...)。但请记住--比较器不会检查参数是否相等-它会检查第一个参数是否小于/大于第二个参数,因为使用“小于”可以更容易地对所有可能的关系进行建模:
a == b <=> !(a < b) && !(b < a)现在,more ontopic
从您所写的内容来看,我不太明白使用map的意义。你能提供一些测试用例吗?那么我就可以给你一个完整的答案了。
https://stackoverflow.com/questions/8341283
复制相似问题