Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如果图形以邻接列表的形式给出,如何扫描用户输入?_C++_Input_Graph_Tree - Fatal编程技术网

C++ 如果图形以邻接列表的形式给出,如何扫描用户输入?

C++ 如果图形以邻接列表的形式给出,如何扫描用户输入?,c++,input,graph,tree,C++,Input,Graph,Tree,我有一个输入,格式如下图所示。我正在使用矢量图[200]读取输入。让我们假设程序读取第一行和第一列的第一个数字(如图所示)。现在我想添加连接到第一个节点的所有顶点,如图[]。向后推_(同一行中的下一个整数),以此类推。但我应该在什么时候停止读取特定节点的输入(图[I])。因为在读取第一行之后,我需要将顶点添加到另一个图[I+1]中节点的对应列表中。如果你不明白我的问题,请看一下我的代码 #include <bits/stdc++.h> using namespace std; ve

我有一个输入,格式如下图所示。我正在使用矢量图[200]读取输入。让我们假设程序读取第一行和第一列的第一个数字(如图所示)。现在我想添加连接到第一个节点的所有顶点,如图[]。向后推_(同一行中的下一个整数),以此类推。但我应该在什么时候停止读取特定节点的输入(图[I])。因为在读取第一行之后,我需要将顶点添加到另一个图[I+1]中节点的对应列表中。如果你不明白我的问题,请看一下我的代码

#include <bits/stdc++.h>
using namespace std;

vector<int> graph[201];

int main()
{   
   int n=2,i,node,temp;
   for(i=1;i<=n;i++)
   {
      cin>>node;
      while(scanf("%d",&temp)!=EOF/*What is the correct conditon to stop  loop*/)
      {
         graph[node].push_back(temp);
      }
   }
   return 0;
 }

假设您想逐行阅读,您可以执行以下操作:

#include <bits/stdc++.h>
using namespace std;

vector<int> graph[201];

int main(){
    string line;
    int n=2,i,node,temp;
    for(i=1;i<=n;i++){
        getline(cin, line);
        istringstream in( line );
        in>>node;
        while(in>>temp){
            graph[node].push_back(temp);
        }
   }
   return 0;
 }
#包括
使用名称空间std;
向量图[201];
int main(){
弦线;
int n=2,i,节点,温度;
对于(i=1;i>节点;
while(在>>温度中){
图形[节点]。推回(临时);
}
}
返回0;
}

假设您想逐行阅读,您可以执行以下操作:

#include <bits/stdc++.h>
using namespace std;

vector<int> graph[201];

int main(){
    string line;
    int n=2,i,node,temp;
    for(i=1;i<=n;i++){
        getline(cin, line);
        istringstream in( line );
        in>>node;
        while(in>>temp){
            graph[node].push_back(temp);
        }
   }
   return 0;
 }
#包括
使用名称空间std;
向量图[201];
int main(){
弦线;
int n=2,i,节点,温度;
对于(i=1;i>节点;
while(在>>温度中){
图形[节点]。推回(临时);
}
}
返回0;
}

请不要显示文本文件的屏幕截图。只需将其包括在问题中(最好包括一个更简化的版本,比如说每行三行和5个相邻部分)。现在我添加了问题中的输入格式,请查看…@Martin Bonner@πάνταῥεῖ c++@Narendra-Sure中允许使用cin和scanf,但通常首选使用
cin
。如果您想了解有关
scanf()
的返回值的更多信息,可以在@πάνταῥεῖ 他想逐行读取整数。直到文件结束,所以
while(cin>>temp)
将不起作用。请不要显示文本文件的屏幕截图。只需将其包含在问题中(最好包含一个更简化的版本,例如每行三行和五个相邻).现在我添加了有问题的输入格式,请查看…@Martin Bonner@πάνταῥεῖ c++@Narendra-Sure中允许使用cin和scanf,但通常首选使用
cin
。如果您想了解有关
scanf()
的返回值的更多信息,可以在@πάνταῥεῖ 他想逐行读取整数,直到文件结束,所以
while(cin>>temp)
不起作用。