c++ - 从 3D map 中插入和读取值

标签 c++ dictionary

首先,我阅读了与此问题相关的所有先前提出的问题,但无法解决我的问题。我有一张 3D map ,

map<int,map<const char*, const char*>> map3D;
map<const char*, const char*> submap;

现在我像这样在其中插入值,int 的最大值是 5但对于每个 int 值都有 50 key and value用于子图。

我是这样插入值的

submap.insert(std::pair<const char*,const char*>(TempA, TempB));
map3D.insert(pair<int,map<const char*,const char*>>(count,submap));

计数值将在 Temp1 和 TempB 值超过 50 个值后递增。现在我想读回它的值,为此我正在做这个问题 How to loop through a C++ map of maps? 中提到的.

std::map<int,map<const char*,const char*>>::iterator out_it;
    for(out_it =map3D.begin();out_it != map3D.end();++out_it)
    {
        for(std::map<const char*, const char*>::const_iterator in_it=out_it->second.begin();in_it != out_it->second.end(); ++in_it)
            std::cout << in_it->first << " => " << in_it->second <<endl;
}

由于 int 只有 5,所以它只显示 TempA 和 TempB 的五个值。如果仅在子图中迭代,则显示所有值

for(std::map<const char*, const char*>::const_iterator in_it=submap.begin();in_it != submap.end(); ++in_it)
                std::cout << in_it->first << " => " << in_it->second <<endl;

谁能指导我如何读取所有值。谢谢

最佳答案

一切都是正确的。因为您每次都编码插入相同的子图:

submap.insert(std::pair<const char*,const char*>(TempA, TempB));
map3D.insert(pair<int,map<const char*,const char*>>(count,submap));

如果您需要包含所有值的子图,那么您需要先填充您的子图,然后插入 map3D 或使用指向子图的指针。

map<int,map<const char*, const char*>*> map3D;
map<const char*, const char*>* submap = new map<const char*, const char*>();
...
submap->insert(std::pair<const char*,const char*>(TempA, TempB));
map3D.insert(pair<int,map<const char*,const char*>*>(count,submap));

否则每次要插入 map3D 时都需要创建子图。

map<const char*, const char*> submap;
submap.insert(std::pair<const char*,const char*>(TempA, TempB));
map3D.insert(pair<int,map<const char*,const char*>>(count,submap));

关于c++ - 从 3D map 中插入和读取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24366401/

相关文章:

ios - Firemonkey:如何从我的应用程序打开 native IOS map ?

c++ - 在 C++ 中使用未声明的列表作为参数

c++ - 这三种初始化静态变量的方式有什么区别?

swift - Type (key : String, value: Any) 没有下标成员

c# - 查找类使用 enum、struct、public const 或其他东西?

python - 将 python 字典值转换为相应的键值对

C++ STL::map 查找结构

c++ - 使用 G++ 构建时出现错误 1

c++ - 转发到就地构造函数

java - 人们还在编写自己的数据结构和算法吗?