首页 > 解决方案 > 递归标准 C++ 库容器类型?

问题描述

是否可以定义标准 C++ 库容器类型 UM、OM 和 L,以便:

?

标签: c++typescontainers

解决方案


像这样的东西:

#include <unordered_map>
#include <map>
#include <list>

struct Container{
  struct List;
  using OM = std::map<int, List>;
  using UM = std::unordered_map<int, typename OM::iterator>;
  using L = std::list<typename UM::iterator>;
  struct List{
    L l;
  };
  UM um;
  OM om;
  L l;
};

int main() {
  Container c;
  c.om[0] = Container::List();
  c.um[0]=c.om.begin();
  c.l.push_back(c.um.begin());
}

推荐阅读