将unordered_map的新实例插入unordered_map

时间:2019-04-19 09:39:56

标签: c++ unordered-map

我有这些构造:

typedef std::unordered_set<std::string> functionSet;

typedef std::unordered_map<std::string, functionSet> classMap;

typedef std::unordered_map<std::string, classMap> semanticMap;

我有一个带有类名的映射,它包含带有函数名的映射,并且包含带有变量的set,我将其用于代码中的语义分析。 在某种情况下,当定义了新的“类”时,我正在调用将新类添加到semnaticMap的函数,因此这意味着它必须将键值对添加到语义映射,类名称和类映射的新实例,但是我不知道该怎么做。

我有一个可变的语义映射图。所以我尝试了map.insert("name", new classMap), std::make_pair()等,但是一切都向我显示了错误

No matching member function for call to 'insert'.

我想添加到unordered_map“ key” => new_unordered_map。

1 个答案:

答案 0 :(得分:1)

您的地图包含classMap类型作为值,而不是classMap*(这是表达式new classMap的结果)。以下代码将为您工作:

map.insert({"name", classMap()});