将boost :: property_map复制到boost :: vector_property_map中

时间:2011-08-22 11:28:18

标签: c++ boost

在图表上调用boost::get时,返回类型为boost::associative_property_map<Graph, PropertyType>。我想获得这张地图的副本,我想将它存储在boost::vector_property_map中。但是,它们不兼容,不足以简单地分配矢量图。看看property_map的来源,似乎boost::associative_property_map根本没有任何访问方法(向量种类至少暴露了“存储迭代器”)。

有办法吗?或者我必须以某种方式找到键并循环它们?

1 个答案:

答案 0 :(得分:1)

很抱歉,只是使用boost :: associative_property_map,您将无法检索包含项目的迭代器。你必须使用另一种方法迭代它们 - 迭代遍历边或顶点,我想,并将它们放入boost :: vector_property_map。

但是如果你必须这样做,那就意味着你正在解构拥有属性映射提供的通用接口的整个想法。难道你不能模板化当前需要vector_property_map的算法让它接受其他的property_map类型吗?