Чтобы получить...
void MinPriority::createArray(string targetVertex, Graph & graph)
{
vector <list <Graph::Edge> >& adjList = graph.get_adjList();
}
для работы мне нужно перейти в Graph &graph
по ссылке из другой функции:
void Graph::MST_PRIM()
{
MinPriority priority;
for(unsigned int i = 0; i != adjList.size(); i++)
{
priority.createArray(adjList[i].front().m_vertex, /*...*/);
}
}
что бы я поставил в /*...*/
чтобы заставить createArray работать? Вот приблизительный пример того, как выглядит класс Graph:
class Graph
{
private:
vector< list<Edge> > adjList;
public:
Graph();
~Graph();
class Edge
{
public:
Edge(string vertex, int weight)
{
m_vertex = vertex;
m_weight = weight;
}
~Edge(){}
string m_vertex;
int m_weight;
};
vector < list < Edge > > get_adjList(){return adjList;}
//Other functions....
};
Пожалуйста, сообщите мне, если вам нужна дополнительная информация. В основном я хочу получить доступ к adjList по ссылке и использовать его в createArray, чтобы сделать из него вектор. (в отдельном классе, конечно)
Кажется, все, что вам нужно, это передать *this
:
priority.createArray(adjList[i].front().m_vertex, *this);