単純なテキスト ファイル形式 (隣接リスト) にグラフを書き込みます。ある例では、結果のファイルに奇妙な非常に長い「NUL」文字列が含まれていることを発見しました。
これらのヌル文字はどこから来るのでしょうか? 彼らはどういう意味ですか?
ファイルを生成するコードは
void GraphIO::writeAdjacencyList(Graph& G, std::string path) {
std::ofstream file;
file.open(path.c_str());
G.forallNodes([&](node v) {
file << v;
G.forallNeighborsOf(v, [&](node x) {
file << " " << x;
});
file << std::endl;
});
INFO("wrote graph to file: " << path);
}
すべてのノードに対する反復は、次のように実現されます。
template<typename Callback>
inline void EnsembleClustering::Graph::forallNodes(Callback func, std::string par) {
assert ((par == "") || (par == "parallel"));
int64_t n = this->numberOfNodes();
#pragma omp parallel for if (par == "parallel")
for (node v = this->firstNode(); v <= n; ++v) {
// call node function
func(v);
}
}
編集:型node
は単に型定義ですint64_t