【发布时间】: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<string,vector<pair<year,string>>>?
标签: c++ dictionary insert