map中的map (map作为键)

map inside map ( Map as key)

本文关键字:map 中的      更新时间:2023-10-16

我已经按照下面的方式创建了地图。例如:地图优先;我必须按照我的要求创建第二个地图。

地图。第一个是第二个map的键值

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

首先我想知道这是正确的方法来做实现。或者我应该用另一个吗?

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

first.insert (" Test1 ", 2);second.insert(首先,1)。但我认为它应该以("Test1" &&1)和("测试",,2)对于第二张地图,两者都是不同的键。

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

首先,对于"STL",让我引用##c++ at freenode:

' STL'有时表示:(1)c++标准库;(2) Stepanov在HP设计的图书馆;(3)以[2]为基础的[1]部分;(4)[1]、[2]或[3]的特定供应商实现;(5)[2]的基本原理。因此,这个术语是非常模糊的,必须非常谨慎地使用。如果你的意思是[1],并且坚持缩写,"stdlib"是一个更好的选择。

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

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

现在,更多的话题:

从你写的,我不太明白有map<map的意义,任何其他>。你能提供一些测试用例吗?那么我就能给你一个完整的答案了。