>试验; 而(测试--) { int m,n,源; cin>>n>>m; 布尔访问[n+1]; 国际区[1001]; 队列q; memset(dist,-1,sizeof(dist)); 向量adj[1001]; for(int i=0;i>a>>b; 形容词[a]。推回(b); 形容词[b]。推回(a); } cin>>来源; 距离[来源]=0; 访问[来源]=真; q、 推(源); while(q.size()) { int v=q.front(); q、 pop(); for(int i:adj[v]) { 如果(!访问[i]) { q、 推(i); 距离[i]=距离[v]+6; 访问[我]=真实; } } } 对于(int i=1;i,c++,arrays,breadth-first-search,C++,Arrays,Breadth First Search" /> >试验; 而(测试--) { int m,n,源; cin>>n>>m; 布尔访问[n+1]; 国际区[1001]; 队列q; memset(dist,-1,sizeof(dist)); 向量adj[1001]; for(int i=0;i>a>>b; 形容词[a]。推回(b); 形容词[b]。推回(a); } cin>>来源; 距离[来源]=0; 访问[来源]=真; q、 推(源); while(q.size()) { int v=q.front(); q、 pop(); for(int i:adj[v]) { 如果(!访问[i]) { q、 推(i); 距离[i]=距离[v]+6; 访问[我]=真实; } } } 对于(int i=1;i,c++,arrays,breadth-first-search,C++,Arrays,Breadth First Search" />

获取意外默认值的布尔数组 编写了C++程序,实现广度优先搜索,解决了所有节点从源寻找最短路径问题。 #include<iostream> #include<vector> #include<string.h> #include<queue> using namespace std; int main() { int test; cin >> test; while(test--) { int m,n,source; cin >> n >> m; bool visited[n+1]; int dist[1001]; queue<int> q; memset(dist, -1, sizeof(dist)); vector<int> adj[1001]; for(int i = 0; i < m; i++) { int a, b; cin >> a >> b; adj[a].push_back(b); adj[b].push_back(a); } cin >> source; dist[source] = 0; visited[source] = true; q.push(source); while(q.size()) { int v = q.front(); q.pop(); for(int i : adj[v]) { if(!visited[i]) { q.push(i); dist[i] = dist[v] + 6; visited[i] = true; } } } for(int i = 1; i <= n; i++) { if(i != source) { cout << dist[i] << " "; } } cout << "\n"; } } #包括 #包括 #包括 #包括 使用名称空间std; int main() { 智力测验; cin>>试验; 而(测试--) { int m,n,源; cin>>n>>m; 布尔访问[n+1]; 国际区[1001]; 队列q; memset(dist,-1,sizeof(dist)); 向量adj[1001]; for(int i=0;i>a>>b; 形容词[a]。推回(b); 形容词[b]。推回(a); } cin>>来源; 距离[来源]=0; 访问[来源]=真; q、 推(源); while(q.size()) { int v=q.front(); q、 pop(); for(int i:adj[v]) { 如果(!访问[i]) { q、 推(i); 距离[i]=距离[v]+6; 访问[我]=真实; } } } 对于(int i=1;i

获取意外默认值的布尔数组 编写了C++程序,实现广度优先搜索,解决了所有节点从源寻找最短路径问题。 #include<iostream> #include<vector> #include<string.h> #include<queue> using namespace std; int main() { int test; cin >> test; while(test--) { int m,n,source; cin >> n >> m; bool visited[n+1]; int dist[1001]; queue<int> q; memset(dist, -1, sizeof(dist)); vector<int> adj[1001]; for(int i = 0; i < m; i++) { int a, b; cin >> a >> b; adj[a].push_back(b); adj[b].push_back(a); } cin >> source; dist[source] = 0; visited[source] = true; q.push(source); while(q.size()) { int v = q.front(); q.pop(); for(int i : adj[v]) { if(!visited[i]) { q.push(i); dist[i] = dist[v] + 6; visited[i] = true; } } } for(int i = 1; i <= n; i++) { if(i != source) { cout << dist[i] << " "; } } cout << "\n"; } } #包括 #包括 #包括 #包括 使用名称空间std; int main() { 智力测验; cin>>试验; 而(测试--) { int m,n,源; cin>>n>>m; 布尔访问[n+1]; 国际区[1001]; 队列q; memset(dist,-1,sizeof(dist)); 向量adj[1001]; for(int i=0;i>a>>b; 形容词[a]。推回(b); 形容词[b]。推回(a); } cin>>来源; 距离[来源]=0; 访问[来源]=真; q、 推(源); while(q.size()) { int v=q.front(); q、 pop(); for(int i:adj[v]) { 如果(!访问[i]) { q、 推(i); 距离[i]=距离[v]+6; 访问[我]=真实; } } } 对于(int i=1;i,c++,arrays,breadth-first-search,C++,Arrays,Breadth First Search,我在每次迭代中声明布尔数组,其元素的默认值为0 你没有初始化数组,并且本地数组不是零初始化,所以需要显式初始化。 你没有初始化数组,并且本地数组没有。T 0初始化,所以需要显式初始化。可变长度数组(例如,访问/代码>)不是有效的C++,虽然有些编译器将它们作为扩展。可变长度数组(例如,访问< /代码>)不是有效的C++,虽然有些编译器将它们作为一个扩展。谢谢,因为元素的值在第一次迭代中为零,所以我假设它是默认值。谢谢,因为元素的值在第一次迭代中为零,所以我假设它是默认值。

我在每次迭代中声明布尔数组,其元素的默认值为0

<不,不是0。C++的简单类型没有默认值。我敢打赌,你可以得到一些随机值,因为你的数组没有自动初始化。 我在每次迭代中声明布尔数组,其元素的默认值为0


<>不,不是0。C++的简单类型没有默认值。我敢打赌,你可以得到一些随机值,因为你的数组没有自动初始化。

< p>你没有初始化数组,并且本地数组不是零初始化,所以需要显式初始化。

你没有初始化数组,并且本地数组没有。T 0初始化,所以需要显式初始化。

可变长度数组(例如,<代码>访问/代码>)不是有效的C++,虽然有些编译器将它们作为扩展。可变长度数组(例如,<代码>访问< /代码>)不是有效的C++,虽然有些编译器将它们作为一个扩展。谢谢,因为元素的值在第一次迭代中为零,所以我假设它是默认值。谢谢,因为元素的值在第一次迭代中为零,所以我假设它是默认值。