我正在检查一些代码,但无法找出以下语法:
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
谢谢
答案 0 :(得分:1)
freq_table[field_pm_value] = map<string, int>();
这将从map
到string
创建一个新的空int
,然后将其复制到freq_table
的{{1}}条目中
如果field_pm_value
没有freq_table
的条目,则会为其创建一个新条目。
答案 1 :(得分:1)
地图是关联的容器,存储按特定顺序由键值和映射值的组合形成的元素。
此结构类似于:
在房屋中,您有不同的房间,分别代表“外部地图容器” map<string, map<string, int> >& freq_table
,在每个房间中,您都有独特的家具及其数量。这些家具在“内部地图”中定义。
由于std::map
具有唯一的密钥,因此您的房子不能有2间卧室,同一房间不能有2张床。
在您的情况下,您正在检查“房间”中是否已装有家具,否则将构建一个空的“房间”。
我为尴尬的类比感到抱歉,尽管我希望这会有所帮助。