在3D地图中插入值

Inserting Values in 3D Map in C++

本文关键字:插入 地图 3D      更新时间:2023-10-16

我是一个新的地图在c++和有一个3D地图,像这样

map<int,map<const char*,const char*>>Map3D;

我想以这样一种方式插入值,当两个const char*值都大于50时,int值增加。我在跟踪const char* value。谁能告诉我如何在这张地图中插入值。我正在做这样的事情

Map3D.insert(pair<int,map<const char* ,const char*>(count,pair<const char*,const char*>(TempA,TempB)));

但是它不工作。

编辑

std::map<int,map<const char*,const char*>>::iterator it= Map3D.begin();
std::map<const char*, const char*>::iterator sub_it = subMap.begin();

你有一个缺失的>,你不能递归地插入std::pair到内部映射,你必须创建一个新的映射或使用现有的

  map<int,map<const char*,const char*>> Map3D;
  map<const char*,const char*> subMap;
  const char hello[] = "hello";
  const char world[] = "world";
  subMap.insert(std::pair<const char*,const char*>(hello, world));
  Map3D.insert(std::pair<int,map<const char*,const char*>>(22, subMap));

编辑:回读元素看看http://www.cplusplus.com/reference/map/map/operator[]/

  map<const char*,const char*> subMapCopy = Map3D[22];
  cout << subMapCopy[hello]; // world

Edit II: with iterators: http://www.cplusplus.com/reference/map/map/begin/

 std::map<int,map<const char*,const char*>>::iterator it= Map3D.begin();
 std::map<const char*, const char*>::iterator sub_it = subMap.begin();
 cout << it->second[sub_it->first]; // world