首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入到unordered_map的unordered_map?

插入到unordered_map的unordered_map?
EN

Stack Overflow用户
提问于 2015-12-23 00:36:57
回答 1查看 4.1K关注 0票数 3

我有一个数据结构,它是unordered_map的unordered_map:

代码语言:javascript
复制
typedef std::unordered_map<string, int> map1;
typedef std::unordered_map<string, map1> map2;

我想在map1中插入一个元素,而不需要使用if语句来检查它是否已经存在。但是,我有点困惑,因为除非已经有map1元素,否则map2没有值,但是map1元素来自map2 (如果它已经存在)。

做这件事最干净的方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2015-12-23 00:44:07

如果您不使用指针,则可以在两个映射上简单地使用operator[]

代码语言:javascript
复制
#include <iostream>
#include <unordered_map>
#include <string>

typedef std::unordered_map<std::string, int> map1;
typedef std::unordered_map<std::string, map1> map2;

int main()
{
    map2 m2;
    m2["a"]["b"] = 1;

    std::cout << m2["a"]["b"] << std::endl;
}

如果只有map2*的情况下,您可以执行以下操作

代码语言:javascript
复制
int main()
{
    map2* m1 = new map2();
    map2& m2 = *m1;
    m2["a"]["b"] = 1;

    std::cout << m2["a"]["b"] << std::endl;
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34420454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档