平面嵌入是对 LValuePropertyMap 的细化,它对value_type在属性映射中使用。
| 嵌入 | 是一个对平面嵌入概念进行建模的类型。 |
| embedding | 是一个对象,类型为嵌入. |
| 图 | 是底层图的类型。 |
| e | 是一个对象,类型为graph_traits<Graph>::edge_descriptor. |
| v | 是一个对象,类型为graph_traits<Graph>::vertex_descriptor. |
| 常量迭代器 | boost::property_traits<Embedding>::value_type::const_iterator | 用于迭代特定顶点平面嵌入中的边顺序的迭代器类型 |
| 表达式 | 返回类型 | 描述 |
|---|---|---|
| embedding[v].begin() | boost::property_traits<Embedding>::value_type::const_iterator | 返回指向顶点 v 周围嵌入中的边范围开始的迭代器 |
| embedding[v].end() | boost::property_traits<Embedding>::value_type::const_iterator | 返回指向顶点 v 周围嵌入中的边范围结束的迭代器 |
| embedding[v].clear() | void | 清除顶点周围嵌入中的所有边v |
| embedding[v].push_back(e) | void | 添加一条边e到顶点周围嵌入边序列的末尾v |
#include <boost/property_map/property_map.hpp>
#include <vector>
...
// Assume a graph type "Graph" defined somewhere above and
// an instance of Graph in a variable g.
// A typedef for the storage - a vector of vectors of edge descriptors
typedef
std::vector< std::vector< graph_traits<Graph>::edge_descriptor > >
planar_embedding_storage_t;
// A typedef for the iterator property map, assuming the graph has
// an interior vertex index map
typedef
boost::iterator_property_map< planar_embedding_storage_t::iterator,
property_map<Graph, vertex_index_t>::type
>
planar_embedding_t;
// Create an instance of the storage and the property map
planar_embedding_storage_t planar_embedding_storage(num_vertices(g));
planar_embedding_t planar_embedding(planar_embedding_storage.begin(),
get(vertex_index, g)
);
// planar_embedding can now be passed to any function expecting a model
// of PlanarEmbedding.