【图论实战】Boost学习 02:基本类型

编程入门 行业动态 更新时间:2024-10-11 23:27:39

【图论<a href=https://www.elefans.com/category/jswz/34/1769775.html style=实战】Boost学习 02:基本类型"/>

【图论实战】Boost学习 02:基本类型

/* 顶点 */
// 描述

typedef boost::graph_traits < graph_t >::vertex_descriptor vertex_descriptor; 

// 迭代器方式一:vp中的一对迭代器分别指向第一个顶点和最后的一个顶点之后

typedef boost::graph_traits < graph_t >::vertex_iterator viter;
std::pair<viter, viter> vp=vertices(g);
for(viter=vp.first ; viter != vp.second; ++viter)std::cout << *viter << " ";

// 迭代器方式二

typedef graph_traits<Graph>::vertex_iterator vertex_iter;
std::pair<vertex_iter, vertex_iter> vp;
for (vp = vertices(g); vp.first != vp.second; ++vp.first)std::cout << index[*vp.first] << " ";
std::cout << std::endl;

/* */
// 描述

typedef boost::graph_traits < graph_t >::edge_descriptor edge_descriptor;

// 迭代器方式一: 得到所有边,erange中的一对迭代器分别指向第一条边和最后的一条边之后

typedef graph_traits<graph_t>::edge_iterator eiter;
std::pair<edge_iter, edge_iter> erange = edges(g);
for(eiter=erange.first; eiter!=erange.second; ++eiter)cout << source(*eiter,g) << "-->" << target(*eiter,g) << endl;

// 迭代器方式二

 graph_traits<Graph>::edge_iterator ei, ei_end;for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)std::cout << "(" << index[source(*ei, g)]<< "," << index[target(*ei, g)] << ") ";cout << endl;

/* 权重 */

boost::property_map<graph_t, boost::edge_weight_t>::type pmpWeightmap = boost::get(boost::edge_weight, g);

/* 点索引 */

boost::property_map<graph_t, boost::vertex_index_t>::type pmpIndexmap = boost::get(boost::vertex_index, g);

/* 输出属性 */

boost::dynamic_properties dp;

更多推荐

【图论实战】Boost学习 02:基本类型

本文发布于:2023-11-15 10:56:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1598488.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:实战   类型   图论   Boost

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!