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

Copying a boost::property_map into a boost::vector_property_map

本文关键字:boost map property vector 复制      更新时间:2023-10-16

在图上调用boost::get时,返回类型为boost::associative_property_map<Graph, PropertyType>。我想要这张地图的副本,我想把它存到boost::vector_property_map里。然而,它们的兼容性不够,不能简单地赋值给向量映射。查看property_map的源代码,似乎boost::associative_property_map根本没有任何访问方法(向量的变化至少暴露了"存储迭代器")。

有办法吗?还是我必须找到键,然后遍历它们?

我很抱歉,但是仅仅使用boost::associative_property_map,您将无法检索包含项的迭代器。你必须使用另一种方法来迭代它们——迭代边缘或顶点,我猜,并把它们放入boost::vector_property_map。

但是如果你必须这样做,这意味着你正在解构拥有属性映射提供的公共接口的整个想法。

你不能模板化算法,目前需要vector_property_map让它接受其他property_map类型?