freq_table [field_pm_value] = map <string,int>();是什么?手段?

时间:2019-10-19 04:36:00

标签: c++ dictionary vector stl c++-standard-library

我正在检查一些代码,但无法找出以下语法:

freq_table[field_pm_value] = map<string, int>();

我很困惑这里发生的事情“ map string,int()”。 freq_table的类型

map<string, map<string, int> >& freq_table 

完整代码为https://github.com/vishalsingh8989/Star-Cubing-Algorithm/blob/master/src/csvreader.cpp

谢谢

2 个答案:

答案 0 :(得分:1)

freq_table[field_pm_value] = map<string, int>();

这将从mapstring创建一个新的空int,然后将其复制到freq_table的{​​{1}}条目中

如果field_pm_value没有freq_table的条目,则会为其创建一个新条目。

答案 1 :(得分:1)

  

Map

     

地图是关联的容器,存储按特定顺序由键值和映射值的组合形成的元素。

此结构类似于: 在房屋中,您有不同的房间,分别代表“外部地图容器” map<string, map<string, int> >& freq_table,在每个房间中,您都有独特的家具及其数量。这些家具在“内部地图”中定义。

由于std::map具有唯一的密钥,因此您的房子不能有2间卧室,同一房间不能有2张床。

在您的情况下,您正在检查“房间”中是否已装有家具,否则将构建一个空的“房间”。

我为尴尬的类比感到抱歉,尽管我希望这会有所帮助。