Я не могу правильно получить доступ к функции класса «граф»

#c #algorithm #data-structures

Вопрос:

У меня возникла проблема с доступом к функции класса «график» в другом классе. Внутри класса «Джипни» есть 2 функции, в которых первая заключается в добавлении ребра, а вторая-в получении кратчайшего пути с помощью функции класса «граф», в которой проблема заключается в том, что при доступе к функции из класса «граф» кажется, что добавленных ребер нет. В этой программе я намерен создать неориентированный график и получить доступ к кратчайшему пути.

ГРАФИК КЛАССОВ:

Это функция «add_edge», которая добавляет ребро в график:

 public:     
    //ADD EDGES
    void add_edge(T key_name, T connected_node, int distance, bool undirected = true){
        map[key_name].push_back(std::make_pair(connected_node, distance));
        if(undirected){ 
            map[connected_node].push_back(std::make_pair(key_name, distance));
        }
    }
 

КЛАСС ДЖИПНИ

Эта функция вызывает функцию «add_edges» в классе graph, чтобы добавить ребро из другого класса.

 auto create_graph(){
    Graph<T> G;
    G.add_edge("Marikina","Manila",1);
    G.add_edge("Manila","Pasig",4);
    G.add_edge("Pasig","Manila",2);

    return G;
}
 

Это функция того же класса, что и функция «create_graph», в которой мне нужно было получить доступ к функциям класса «график», и она ничего не напечатала, но я уже создал график в функции «»create_graph», похоже, что края графика не создаются при доступе к этой функции.:

   void search_shortest_path(){
        create_graph();
        Graph<T> G;
        std::cout<<"AVAILABLE ROUTESn";
        G.print_all_key();

        T source;
        T destination;
        
        std::cout<<"Enter your starting point: ";
        std::cin>>source;
        std::cout<<"Enter your destination point: ";
        std::cin>>destination;

        G.dijkstra_algorithm(source, destination);
    }
 

Комментарии:

1. Graph<T> G = create_graph(); ?