2012-08-24 150 views
1

我在Graphchi中编写了一个最短路径代码,并且我想在文件中打印输出。我试图使用示例中显示的模板,但是如果我使用与其他示例相同的方式写入文件,则会出错。 我被困在这里了。作为我想打印的输出(顶点id,它距离源的最小距离)。 我该怎么做。将输出写入Graphchi中的文件

+0

请提供您的代码和您得到的错误。 –

+0

其实我正在使用其他例子的代码,所以它给了这个错误。我会看看你给的答案,然后回复你! –

回答

2

下面是如何将所有顶点的值输出到控制台的示例。将其修改为将输出写入文件很容易。请注意,如果您可以处理二进制文件,GraphChi已经在文件中包含顶点值:.B.vout,其中sizeof(VertexDataType)。

1)您需要定义一个回调函数,这将需要顶点ID和值作为参数

class OutputVertexCallback : public VCallback<VertexDataType> { 
public: 

virtual void callback(vid_t vertex_id, VertexDataType &value) { 
    std::cout << vertex_id << "=" << value << std::endl; 
} 
}; 

2)然后,你需要调用foreach_vertices()如下得到的输出:

OutputVertexCallback callback; 
foreach_vertices<VertexDataType>(filename, 0, engine.num_vertices(), callback);