在获取地图键方面有些挣扎。我希望这种方法可以修改一个边向量,其中索引是目标节点,该索引处的值是权重。向量“edges”已经初始化大到足以容纳边缘。编译器抱怨它无法将迭代器类型转换为 int。如果可能的话,有人对如何处理这种转换有任何建议或想法吗?谢谢。这是我正在实施 Dijkstra 的 MOOC 最短路径的任务的一部分。
void CompleteGraph::GetNodeEdges(int Node, std::vector<int> &edges){
// Modifies a vector of edges given the source node sorted by edge weight
// Iterate over a map. Grab all edges that have the given start node(map's 1st key)
typedef std::map<int, std::map<int, int> >::iterator iter;
for(iter i = Graph.begin(); i != Graph.end(); i++){
if (i->first == Node){
edges[i->second.begin()] = i->second.end();
}
}
// Sort vector here: will do this next
}