int main(int argc, char **argv)
{
ifstream inFile;
inFile.open("C:\\Users\\Sean\\Desktop\\test.txt", ios::in);
string line;
getline(inFile, line);
std::istringstream lstream(line);
int n,m;
stringstream ss(line);
ss >> n >> m;
cout << "n=" << n << " m= " << m << endl;
vector<int> adj[n];
//cout << "got here" << endl;
int j = 0;
int i = 0;
int largest = 0;
int total = 0;
while (getline(inFile, line))
{
std::istringstream lstream(line);
//cout << line << endl;
int val;
while (lstream>> val)
{
addEdge(adj, i, val);
j++;
total++;
}
if(j>largest){ largest = j;}
j = 0;
i++;
}
cout << "Largest =" << largest << endl;
cout << "Average =" << (float)total/n << endl;
因此,该程序正在从Open Street Map读取图形。 n和m是文件中的前两个整数,表示顶点的数量和边的数量。
如标题中所示,该程序可完美地处理较小的“播放”文件,但似乎在尝试声明一个int向量为463514大小的int向量时就关闭了。
任何帮助表示赞赏。有点丢在这里。
这是addEdge的主要作用:
void addEdge(vector<int> adj[], int u, int v)
{
adj[u].push_back(v);
};