c++ - 将 unordered_map 的新实例插入 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;
我有一个带有类名的映射,它包含带有函数名称的映射,它包含带有变量的集合,我在我的代码中使用它进行语义分析。当有一种情况时,当定义了新的“类”时,我正在调用将新类添加到 semnaticMap 的函数,因此这意味着它必须将键值对添加到语义映射、类的名称和类映射的新实例,但是我不知道该怎么做。
我有一个可变语义映射图。所以我试过map.insert("name", new classMap), std::make_pair()
了,等等,但一切都告诉我错误
No matching member function for call to 'insert'.
我想添加到 unordered_map "key" => new_unordered_map。
解决方案
您的地图包含classMap
类型作为值,而不是classMap*
(这是 expression 的结果new classMap
)。以下代码将为您工作:
map.insert({"name", classMap()});
推荐阅读
- spring-boot - 在 Spring Boot 中使用 Jackson 反序列化 Date 对象
- amazon-web-services - 我可以在更新用户之前使用 aws amplify 验证电话号码吗?
- python - (Discord.py) 如何获取整个嵌入内容?
- python - 有没有办法让 C# 从 python 脚本中获取和设置变量而不事先执行它?
- ruby - 提示用户正确输入
- javascript - 使用 JavaScript 进行 Telnet 连接
- typescript - Typescript 访问对象属性类型而不触发循环引用
- prometheus - 带有 Prometheus 查询的 Grafana Ad-hoc 过滤器
- php - 使用 Scandir 间歇性刷新文件链接问题
- sql - 一种在两个不同表中将 SQL 位与 char 进行比较的方法