使用第二种类型作为列表提升bimap,展平右侧地图视图

时间:2015-08-01 20:39:06

标签: c++ boost stl bimap boost-bimap

我最近看到boost有一个名为bimap的双向地图实现。

我的初始STL地图使用以下两种类型:

  • int作为密钥类型
  • std::weak_ptr<void>作为值类型(让我们称之为X

场景1

要创建具有这些类型的bimap,声明将类似于

boost::bimap<int, boost::bimaps::set_of<X, std::owner_less<X>>>

因为std::weak_ptr需要较少的运算符(由std::owner_less提供)并且与boost::bimaps::set_of的类型相关联(如果我理解正确的话)。

场景2

我希望地图中的int类型键指向多个X类型的值。

对于标准地图,将值类型从X更改为std::list<X>即可,如下所示: std::map<int, std::list<X>>

如何定义双向地图(或可以使用什么),以便将正确的地图视图解释为map<X,int>(展平X的列表),而正确的地图仍然是一个map<int,list<X>>

0 个答案:

没有答案