地图内的地图(地图为关键)

时间:2011-12-01 12:19:14

标签: c++

我已经按照以下方式创建了地图。 例:先映射; 我必须根据我的要求按照以下方式创建第二张地图。

映射第二。 首先是第二张地图的关键值。

我已将数据插入到两张地图中。 first.insert( “测试1”,1); second.insert(第一,2)。

首先我想知道它是否是正确的实施方式。或者我应该使用另一个吗?

我遇到这个代码的一个问题(不是恭维问题)。如果我以下列方式从数据库获取数据,则该值不会插入到第二个映射中。

first.insert( “测试1”,2); second.insert(第一,1)。但我相信它应该进入地图(“Test1”&& 1)和 (“Test”&& 2)都是第二张图的不同键。

2 个答案:

答案 0 :(得分:1)

您为什么要将地图用作关键字类型? 键应该很小,因为您无法保证STL会有多少副本。使用(可能很大的)std :: map作为键会破坏你的apllication的性能。

答案 1 :(得分:1)

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

  

`STL'有时用来表示:(1)C ++标准库; (2)Stepanov在惠普设计的图书馆; (3)基于[2]的[1]部分; (4)[1],[2]或[3]的特定供应商实施; (5)[2]的基本原则。因此,该术语含糊不清,必须极其谨慎使用。如果你的意思是[1]而且坚持缩写,那么“stdlib”是一个更好的选择。

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

a == b <=> !(a < b) && !(b < a)

现在,更多ontopic

根据你所写的内容,我不太了解地图&lt; map,其他任何&gt;。你能提供一些测试用例吗?那么我将能够给你完整的答案。