Difference between revisions of "CPP/Boost/BGL/PrimMST"
From ProgrammingExamples
< CPP
Daviddoria (Talk | contribs) (Created page with "==DijkstraDirected.cpp== <source lang="cpp"> #include <iostream> #include <boost/graph/graph_traits.hpp> #include <boost/graph/adjacency_list.hpp> #include <boost/graph/prim_...") |
(No difference)
|
Revision as of 07:45, 10 November 2016
DijkstraDirected.cpp
#include <iostream> #include <boost/graph/graph_traits.hpp> #include <boost/graph/adjacency_list.hpp> #include <boost/graph/prim_minimum_spanning_tree.hpp> typedef boost::property<boost::edge_weight_t, double> EdgeWeightProperty; typedef boost::adjacency_list<boost::setS, // OutEdgeContainer boost::vecS, // VertexContainer boost::undirectedS, boost::no_property, EdgeWeightProperty> Graph; int main(int,char*[]) { // Create a graph object Graph g(3); EdgeWeightProperty e1 = 5; add_edge(0, 1, e1, g); EdgeWeightProperty e2 = 3; add_edge(1, 2, e2, g); std::vector < boost::graph_traits < Graph >::vertex_descriptor > parents(num_vertices(g)); // "named parameter" signature prim_minimum_spanning_tree(g, &parents[0], boost::root_vertex(1)); for (std::size_t i = 0; i != parents.size(); ++i) { if (parents[i] != i) { std::cout << "parent[" << i << "] = " << parents[i] << std::endl; } else { std::cout << "parent[" << i << "] = no parent" << std::endl; } } return 0; }
CMakeLists.txt
cmake_minimum_required(VERSION 2.6) Project(PrimMST) set(Boost_USE_MULTITHREADED ON) FIND_PACKAGE(Boost 1.38 COMPONENTS program_options required) INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} ${Boost_INCLUDE_DIRS}) LINK_DIRECTORIES(${LINK_DIRECTORIES} ${Boost_LIBRARY_DIRS}) ADD_EXECUTABLE(PrimMST PrimMST.cpp)