map中的map (map作为键)
map inside map ( Map as key)
我已经按照下面的方式创建了地图。例如:地图优先;我必须按照我的要求创建第二个地图。
地图。第一个是第二个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的意义,任何其他>。你能提供一些测试用例吗?那么我就能给你一个完整的答案了。
- 使用字符数组作为 Map 中的键
- 找不到最新插入到 std::map 中的键
- Map中的(字符串的)向量迭代器
- 计算表达式字符串由 std::map 中的键组成
- 使用 protobuf 对象作为 std::map 中的键
- 如何将 std::function 的零个或多个参数用作 std::map 中的值
- 检查与MAP中的密钥关联的重复值
- 做一个std::map中的项目永远保持在同一地址
- std::map中的find()函数返回一个值,尽管没有有效的键
- 访问MAP中的第二个元素,这是对象指针
- 在插入时插入std :: MAP中的模板类
- 使用模板作为 std::map 中的键
- 如何在C++中使用map中的计数函数
- 使用指针访问 map 中的行数据 C++
- 从 std::map 中的向量获取数据
- 访问std :: MAP中的静态构造函数New New拨号
- c value_type对于std :: tr1不起作用:std :: map中的元组
- 标准::map 中的容错键查找
- std::map 中的继承,基类作为值
- std::map中的线程安全性