📄 utility.cpp
字号:
#include "utility.h"void readColor(istream * inFile, string & color, NodeList & nodes, bool readonly){ string line; int node; if (!readonly) nodes.clear(); *inFile >> color; getline(*inFile, line, '\n'); if (readonly) return; // cout << color << ": "; istringstream inRow(line); while (inRow >> node) { nodes.insert(node); // cout << node << " "; } // cout << endl;}void loadFromDump(istream * inFile, Graph & graph){ int nodes, node1, node2; graph.clear(); *inFile >> nodes; string line; getline(*inFile, line, '\n'); for (int i = 0; i < nodes; i++) { string line_; getline(*inFile, line_, '\n'); // cout << "Analizzo: " << line_ << endl; istringstream inRow(line_); inRow >> node1; while (inRow >> node2) { connect(node1, node2, graph); // cout << "Connect " << node1 << " - " << node2 << endl; } }}void loadFromFile(const char * fileName, Graph & graph){ // Inizializza il grafo graph.clear(); // Nodi da connettere int nodeA; int nodeB; // Apre il file della topologia ifstream in; in.open(fileName, ios::in); // Carica il grafo while (in >> nodeA >> nodeB) graph[nodeA].insert(nodeB); // Chiude il file. in.close();}void extractLayers(string s_layers, vector<string> & layers){ string layer; layers.clear(); istringstream inRow(s_layers); while (getline(inRow, layer, '-')) { layers.push_back(layer); }}void skipClustering(istream * inFile){ int i_tmp; string s_tmp; *inFile >> i_tmp; for (int t = 0; t < (i_tmp + 2); t++) getline(*inFile, s_tmp, '\n'); *inFile >> i_tmp; for (int t = 0; t < (i_tmp + 1); t++) getline(*inFile, s_tmp, '\n');}void skipBackbone(istream * inFile){ int i_tmp; string s_tmp; skipClustering(inFile); *inFile >> i_tmp; for (int t = 0; t < (i_tmp + 1); t++) getline(*inFile, s_tmp, '\n');}void skipLeader(istream * inFile){ string s_tmp; int i_tmp; *inFile >> i_tmp; for (int t = 0; t < (i_tmp + 4); t++) getline(*inFile, s_tmp, '\n');}void skipShiva(istream * inFile){ string s_tmp; skipBackbone(inFile); getline(*inFile, s_tmp, '\n');}void skipConnector(istream * inFile){ string s_tmp; skipBackbone(inFile); getline(*inFile, s_tmp, '\n');}void skipRajaraman(istream * inFile){ string s_tmp; skipClustering(inFile); getline(*inFile, s_tmp, '\n');}void skipLayer(istream * inFile){ string currentLayer; *inFile >> currentLayer; if (currentLayer == "CLUSTERING") { skipClustering(inFile); } else if (currentLayer == "BACKBONE") { skipBackbone(inFile); } else if (currentLayer == "LEADER") { skipLeader(inFile); } else if (currentLayer == "SHIVA") { skipShiva(inFile); } else if (currentLayer == "CONNECTOR") { skipConnector(inFile); } else if (currentLayer == "RAJARAMAN") { skipRajaraman(inFile); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -