Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template<typename edgeType = int, typename vertexProperty = boost::no_property>
- class BGraph{
- public:
- typedef boost::adjacency_list<
- boost::listS,
- boost::vecS,
- boost::directedS,
- vertexProperty,
- boost::property<boost::edge_weight_t, edgeType>> graphType;
- typedef typename graphType::vertex_descriptor vertex_descriptor;
- typedef typename graphType::edge_descriptor edge_descriptor;
- //std::map<vertexIndexType, typename graphType::vertex_descriptor> toDescriptor;
- auto dijk(vertex_descriptor v0){
- using namespace boost;
- using retType = std::tuple<typename graphType::vertex_descriptor, edgeType>;
- std::vector<retType> ret2;
- std::cout << "distances and parents:" << std::endl;
- typename graph_traits < graphType >::vertex_iterator vi, vend;
- for (boost::tie(vi, vend) = vertices(g); vi != vend; ++vi) {
- ret2.push_back(std::make_tuple(*vi, d[*vi]));
- }
- return ret2;
- }
- };
- auto t = g1.dijk(0);
- for(auto& i : t) {
- auto a = std::get<BGraph::vertex_descriptor>(i); // error
- auto b = std::get<int>(i); // ok
- cout << a << b << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement