在图表上调用boost::get
时,返回类型为boost::associative_property_map<Graph, PropertyType>
。我想获得这张地图的副本,我想将它存储在boost::vector_property_map
中。但是,它们不兼容,不足以简单地分配矢量图。看看property_map的来源,似乎boost::associative_property_map
根本没有任何访问方法(向量种类至少暴露了“存储迭代器”)。
有办法吗?或者我必须以某种方式找到键并循环它们?
答案 0 :(得分:1)
很抱歉,只是使用boost :: associative_property_map,您将无法检索包含项目的迭代器。你必须使用另一种方法迭代它们 - 迭代遍历边或顶点,我想,并将它们放入boost :: vector_property_map。
但是如果你必须这样做,那就意味着你正在解构拥有属性映射提供的通用接口的整个想法。难道你不能模板化当前需要vector_property_map的算法让它接受其他的property_map类型吗?