gpt4 book ai didi

c++ - 嵌套的 std::maps

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:52 24 4
gpt4 key购买 nike

假设我有一个类型,我将调用 NamedNestedMap

std::map<std::string, std::map<std::string, NamedNestedMap> >

在这种情况下,该对的每一秒(值)都与父对象具有相同的种类或类型。我不知道的是如何声明它。这将允许递归算法遍历 map 的“树”。

Value 类型与父类型相同,在我需要引用它的时候,它没有完全声明。

你如何声明像这样嵌套的东西......

我什至无法对第一个进行 typedef 以便我可以将其包含在第二个中,因为它不完整

递归会在 map 中寻找一些东西,当它找到它时,递归那个对象的值。算法部分看起来很简单,声明部分是这里的难点。我不是要迭代 map 的 map ,只是使用 map.find,递归并再次使用 map.find。

最佳答案

你必须使用指针(当然,否则递归永远不会终止——你总是需要一个空映射):

struct NestedMap;
struct NestedMap : std::map<std::string, NestedMap*> {};

自然地,您可能希望使用 shared_ptr 或类似的东西来管理内存,而不是原始指针。

关于c++ - 嵌套的 std::maps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1500208/

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