为了得到......
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中使用它来制作一个向量。 (在一个单独的课程中)
答案 0 :(得分:2)
您似乎只需要传入*this
:
priority.createArray(adjList[i].front().m_vertex, *this);