Advertisement
Guest User

Untitled

a guest
Jul 25th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1.  
  2. template<typename edgeType = int, typename vertexProperty = boost::no_property>
  3. class BGraph{
  4. public:
  5. typedef boost::adjacency_list<
  6. boost::listS,
  7. boost::vecS,
  8. boost::directedS,
  9. vertexProperty,
  10. boost::property<boost::edge_weight_t, edgeType>> graphType;
  11.  
  12. typedef typename graphType::vertex_descriptor vertex_descriptor;
  13. typedef typename graphType::edge_descriptor edge_descriptor;
  14.  
  15. //std::map<vertexIndexType, typename graphType::vertex_descriptor> toDescriptor;
  16.  
  17.  
  18. auto dijk(vertex_descriptor v0){
  19. using namespace boost;
  20. using retType = std::tuple<typename graphType::vertex_descriptor, edgeType>;
  21. std::vector<retType> ret2;
  22. std::cout << "distances and parents:" << std::endl;
  23. typename graph_traits < graphType >::vertex_iterator vi, vend;
  24. for (boost::tie(vi, vend) = vertices(g); vi != vend; ++vi) {
  25. ret2.push_back(std::make_tuple(*vi, d[*vi]));
  26. }
  27. return ret2;
  28. }
  29. };
  30.  
  31.  
  32. auto t = g1.dijk(0);
  33. for(auto& i : t) {
  34. auto a = std::get<BGraph::vertex_descriptor>(i); // error
  35. auto b = std::get<int>(i); // ok
  36. cout << a << b << endl;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement