zoukankan      html  css  js  c++  java
  • 18.boost 图的拓扑排序

    运行结果:

    代码示例:

     1 #include <iostream>
     2 #include <vector>
     3 #include <deque>
     4 #include <boost/config.hpp>
     5 #include <boost/graph/adjacency_matrix.hpp>
     6 #include <boost/graph/graph_utility.hpp>//打印顶点,边长
     7 #include <boost/graph/adjacency_list.hpp>
     8 //拓扑排序
     9 #include <boost/graph/topological_sort.hpp>
    10 
    11 using namespace std;
    12 using namespace boost;
    13 
    14 void main()
    15 {
    16     vector<string> task;
    17     task.push_back("幼儿园接小孩");
    18     task.push_back("买菜");
    19     task.push_back("去ATM取钱");
    20     task.push_back("送孩子去看书");
    21     task.push_back("煮饭");
    22     task.push_back("去图书馆接孩子");
    23     task.push_back("吃饭");
    24 
    25     typedef pair<int, int>pint;
    26     pint ea[] = { pint(0,3),pint(1,3),pint(1,4), pint(2,1), pint(3,5), pint(4,6), pint(5,6) };
    27     //初始化
    28     vector<pint> myv(ea, ea + 7);
    29     //生成图
    30     adjacency_list<listS, vecS, directedS> myg(myv.begin(), myv.end(), myv.size());
    31 
    32     deque<int> top_order;
    33     //拓扑排序
    34     topological_sort(myg, front_inserter(top_order), vertex_index_map(identity_property_map()));
    35     for (auto ib = top_order.begin(); ib != top_order.end(); ib++)
    36     {
    37         cout << task[*ib] << endl;
    38     }
    39     cin.get();
    40 }
  • 相关阅读:
    学习Java的Day02
    学习Java的Day01
    多线程的了解
    几个MQ的区别
    HTML5——存储(cookie、localStorage、sessionStorage)的区别
    dubbo mock配置
    Springboot分布式,excel导出,运用POI导出,前端用的jsp
    oracle 添加字段和添加注释
    可以重复的Map:IdentityHashMap
    数组转list问题
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8668478.html
Copyright © 2011-2022 走看看