【问题标题】:Map inside a Map地图内的地图
【发布时间】:2015-11-18 12:26:03
【问题描述】:

_map 的键字符串代表电影的名称。 第二张地图的关键 int 代表年份。而内图的字符串代表了电影的所有翻译。我希望每年和每部电影存储不止一个翻译

map<string,map<int, string> > _map;
map<int, string>  _insideMap;
int year;
cin >> year;
_insideMap[int]="Los Vengadores";
_map["The Avengers"]=_mapaDins;

因此,在那之后,我必须添加电影《复仇者联盟》的另一个翻译,例如俄语。 所以我再次做同样的事情,并将值 Los Vengadores 替换为“俄罗斯名称”我也试过这个,但它不起作用:

it2=_map.find("The Avengers");
it2.second.insert(2013,"russian translaiton");//erorr

我必须如何插入?

复仇者联盟->

2010 洛杉矶文加多斯

2013年“俄罗斯名字”

下一部电影->

谢谢你

【问题讨论】:

  • 那么对于内部映射中的数据,您想要存储一个collection字符串吗?也许vector 会对此有好处?
  • 您当前的解决方案仅允许您每年为每部电影存储一个翻译。这真的是你想要的吗?
  • 使用 map 结构是必须的,因为老师说它比向量或列表更有效地通过键搜索元素。
  • 不,我希望每部电影每年存储不止一个翻译
  • 这可能是正确的,但仅适用于外部地图,因为您似乎没有搜索年份。为什么不使用map&lt;string,vector&lt;pair&lt;year,string&gt;&gt;&gt;

标签: c++ dictionary insert


【解决方案1】:

首先,insert 应该采用类型对的参数,如下所示:

it2.second.insert( make_pair(2013,"russian translaiton")  );

而且我认为您需要一个多映射来存储每部电影每年不止一个翻译。

【讨论】:

    猜你喜欢
    • 2022-01-14
    • 2019-11-10
    • 2012-08-06
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多