gpt4 book ai didi

c++ - 从函数返回 unordered_map 内的 unordered_map

转载 作者:行者123 更新时间:2023-11-28 03:04:57 27 4
gpt4 key购买 nike

我正在尝试从 unordered_map 中返回 unordered_map 的拷贝。

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

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) 返回容器的迭代器。

非常感谢!

最佳答案

如果你想在没有找到元素的情况下返回空 map ,你可以像这样简单地做:

Foo GetSubmap(std::string name)
{
FooContainer::const_iterator f = bar.find( name );
return f != bar.end() ? f->second : Foo();
}

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

关于c++ - 从函数返回 unordered_map 内的 unordered_map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19964909/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com