首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从函数返回unordered_map内的unordered_map

从函数返回unordered_map内的unordered_map
EN

Stack Overflow用户
提问于 2013-11-13 21:38:14
回答 1查看 2K关注 0票数 0

我正在尝试从一个unordered_map内部返回一个unordered_map的副本。

以下代码更清楚地说明了我的问题:

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

...

FooContainer bar;
// etc

...

Foo GetSubmap(std::string name)
{
    // ???
}

当unordered_map.find(foo)返回容器的迭代器时,我不确定我将如何做到这一点。

事先非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-13 21:53:22

如果您想返回空映射(如果找不到任何元素),您可以这样做:

代码语言:javascript
复制
Foo GetSubmap(std::string name)
{
    FooContainer::const_iterator f = bar.find( name );
    return f != bar.end() ? f->second : Foo();
}

或者,如果没有找到任何元素,则可以抛出异常。您也可以使用bar[name],但是您应该知道它有副作用--每次查找不存在的元素时,都会将空Foo插入到bar中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19964909

复制
相关文章

相似问题

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