如果图形以邻接表的形式给出,如何扫描用户输入
How to scan input from user if graph is given in form of adjancency list?
我有一个输入格式如下图所示。我使用向量图[200]来读取输入。假设程序读取第一行和第一列的第一个数字(如图所示)。现在我想添加所有连接到第一个节点的顶点,就像图[1]。Push_back(同一行中的下一个整数)等等。但是什么时候我应该停止读取特定节点(graph[I])的输入。因为在读取第一行之后,我需要将顶点添加到另一个图[I +1]到node的相应列表中。如果你不明白我的问题,请看看我的代码。
#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;
}
输入格式:
1 37 79 164 155 32 87 39 113 15 18 78 175 140 200 4 160 97 191 100 91 20 69 198 196
20 123 134 10 141 13 12 43 47 3 177 101 179 77 182 117 116 36 103 51 154 162 128 30
3 48 123 134 109 41 17 159 49 136 16 130 141 29 176 2 190 66 153 157 70 114 65 173 104 194 54
14 91 171 118 125 158 76 107 18 73 140 42 193 127 100 84 121 60 81 99 80 150 55 1 35 23 93
5 193 156 102 118 175 39 124 119 19 99 160 75 20 112 37 23 145 135 146 73 35
60 155 56 52 120 131 160 124 119 14 196 144 25 75 76 166 35 87 26 20
7 156 185 178 79 27 52 144 107 78 22 71 26 31 15 56 76 112 39 8 113 93
8 185 155 171 178 108 64 164 53 140 25 100 133 9 52 191 46 20 150 144 39 62 131 42 119 127 31 7
9 91 155 8 160 107 132 195 26 20 133 39 76 100 78 122 127 38 156 191 196
10 190 184 154 49 2 182 173 170 161 47 189 101 153 50 30 109 177 148 179 16 163 116 13 90 185
111 123 134 163 41 12 28 130 13 101 83 77 109 114 21 82 88 74 24 94 48 33
12 161 109 169 21 24 36 65 50 2 101 159 148 54 192 88 47 11 142 43 70 182 177 179 189 194 33
13 161 141 157 44 83 90 181 41 2 176 10 29 116 134 182 170 165 173 190 159 47 82 111 142 72 154 110 21 103 130 11 33 138 152
and so on...
这是我的输入格式
假设您想逐行读取,您可以这样做:
#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;
}
相关文章:
- 检查不带转换的扫描格式
- 如何对__uint128_t进行位扫描(128位)?
- 我的 SonarQube C++扫描成功,但结果仅标记重复项,而没有标记其他标记的位置
- 使用扫描的调试断言失败
- 如何在扫描中使用字符双指针?
- 使用 Clang LibTooling 扫描C++在模板化父类中调用本地类的源
- 为什么 EOF 在循环扫描期间没有终止?
- 有没有一种方法可以在linux中扫描已构建的ARM库中的函数
- ESP32_BLE_Arduino库中的扫描窗口、间隔和扫描时间之间有什么区别
- scanf() 语句中"%*[^n]"的格式字符串指示什么?分配抑制器 (*) 和否定扫描集 ([^) 如何协同工作?
- 为什么我应该在scanf()-家族成员中包含一个长度修饰符作为参数?有什么好处?使用长度修改器进行扫描的作用
- 开发QR扫描仪以扫描我生成的"only" QR码?
- 快速扫描标准以获取整数不起作用
- C++ 如何从文本文件中扫描二维数组并对行求和?
- 扫描阵列特定次数,然后找出元素
- C++客户端/服务器聊天应用程序 - 从 Ubuntu 命令窗口扫描输入
- c++ 中用于扫描数组的指针
- iwlist 在使用 execl 调用时尝试扫描所有接口
- 为什么使用快速扫描功能时没有得到所需的输出?
- 扫描位数组以查找多个位的模式