【发布时间】:2016-03-31 23:20:42
【问题描述】:
我需要一个 Map::iterator 列表和 List::iterator 映射。我该怎么做:
typedef std::list<Map::iterator> List;
typedef std::map<int, List::iterator> Map;
也许我可以对迭代器使用前向声明之类的东西?
【问题讨论】:
-
听起来像一个递归定义。您确定这是您问题的正确解决方案吗?你想解决什么问题?
-
我确定。如果我只使用普通指针,那不是问题,因为我可以制作前向声明结构/类。在这种情况下,我想使用像普通指针这样的迭代器。
-
因此,您将拥有一个 Map,当给定
Int时,将返回一个iterator到一个List,它包含一个iterator到一个Map,它包含和 @ 987654327@ 到“列表”...等等。也许您的解决方案是 3 种不同的类型? -
一种可能的解决方案是使用类型擦除,例如将第二个参数设为
boost::any。 -
@PazO 我上面问题中的代码是一个简单的例子,仅用于说明问题。
标签: c++ list dictionary iterator std