C++多维地图:如何访问'inner'地图?
C++ multidimensional map: How to acces 'inner' maps?
我有一个多维映射。假设:
std::map<std::string,
std::map<std::string,
std::map<std::string, std::list<std::string>>>> my_map;
我的问题是:访问"内部"映射(对象)的正确方法是什么?我不谈论价值观。我知道它们可以通过
访问my_map["key1"]["key2"]....
我指的是尺寸。我怎样才能得到第二张地图的大小。这是正确的做法吗?:
my_map.begin()->second.size()
访问"内部"映射的正确方法是什么?
没有内部映射。有许多内部地图。m_map["key1"]
是一个内映射,m_map["key2"]
是另一个内映射。对于外部地图上的每个键,都有一个新的内部地图。这些地图彼此之间没有关系——它们有相同的类型,仅此而已。
my_map.begin()->second.size()
将打印第一个键对应的内部映射的大小,m_map["key1"].size()
将打印"key1"
对应的内部映射的大小。
如果您确定内部map
存在,或者您打算创建它,您可以这样做:
my_map["key1"].size();
对于最内部的map
:
my_map["key1"]["key2"].size();
如果不知道内部map
是否存在,并且不想创建它,则必须使用find
:
const auto it = my_map.find("key1");
const auto size = it = my_map.end() ? 0 : it->size();
对于最内部的map
,将是:
const auto it = my_map["key1"].find("key1");
const auto size = it = my_map["key1"].end() ? 0 : it->size();
相关文章:
- 为什么不;名字在地图上是按顺序排列的吗
- 基于多个条件处理地图中的所有元素
- 在C++中将矢量转换为嵌套地图
- 替换基于地图的所有引用
- 如何区分地图中的 0 和 false?
- 地图计数确实很重要,或者只是检查是否存在
- 如何从地图中删除矢量对象
- 是否有任何C++功能可以对地图进行排序?
- 如何使用 std::variant 打印地图键/值?
- 从矢量或地图中删除共享指针
- 在 c++ 中,有一种方法可以创建一个包含地图作为值的树状地图?
- 无限嵌套具有变体的地图
- C++一会儿循环读到地图上 2 行?
- 如何在cpp中使用地图显示给定日期范围内(在下面的问题中)的费率?
- 如何检查变量是否是C++中的地图?
- 如何使地图按值C++排序
- 修改地图内矢量中的值
- 为什么我在地图中搜索STL时差很大?
- 我正在尝试按降序对地图进行排序,但没有得到预期的结果?
- C++多维地图:如何访问'inner'地图?