【问题标题】:What does freq_table[field_pm_value] = map<string, int>(); means?什么 freq_table[field_pm_value] = map<string, int>();方法?
【发布时间】:2019-10-19 04:36:00
【问题描述】:

我正在浏览一些代码,但无法弄清楚以下语法:

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

谢谢

【问题讨论】:

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


    【解决方案1】:
    freq_table[field_pm_value] = map<string, int>();
    

    这会从stringint 创建一个新的空map,然后将其复制到freq_tablefield_pm_value 条目

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

    【讨论】:

      【解决方案2】:

      Map

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

      这个结构类似于: 在房子里,你有不同的房间,代表你的“外部地图容器”map&lt;string, map&lt;string, int&gt; &gt;&amp; freq_table,每个房间都有独特的家具和数量。这些家具在“内图”中定义。

      由于std::map拥有唯一的钥匙,所以你的房子不能有2间卧室,同一个房间不能有2张床。

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

      我很抱歉这个尴尬的类比,虽然我希望它可以帮助。

      【讨论】:

        猜你喜欢
        • 2020-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多