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

/* 顶点 */
// 描述

复制代码
typedef boost::graph_traits < graph_t >::vertex_descriptor vertex_descriptor; 

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

cpp 复制代码
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 << " ";

// 迭代器方式二

cpp 复制代码
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;

/* */
// 描述

cpp 复制代码
typedef boost::graph_traits < graph_t >::edge_descriptor edge_descriptor;

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

cpp 复制代码
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;

// 迭代器方式二

cpp 复制代码
 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;

/* 权重 */

cpp 复制代码
boost::property_map<graph_t, boost::edge_weight_t>::type pmpWeightmap = boost::get(boost::edge_weight, g);

/* 点索引 */

cpp 复制代码
boost::property_map<graph_t, boost::vertex_index_t>::type pmpIndexmap = boost::get(boost::vertex_index, g);

/* 输出属性 */

cpp 复制代码
boost::dynamic_properties dp;
相关推荐
西岸行者4 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
蜡笔小马4 天前
21.Boost.Geometry disjoint、distance、envelope、equals、expand和for_each算法接口详解
c++·算法·boost
悠哉悠哉愿意4 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码4 天前
嵌入式学习路线
学习
毛小茛5 天前
计算机系统概论——校验码
学习
babe小鑫5 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms5 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下5 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。5 天前
2026.2.25监控学习
学习
im_AMBER5 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode