创建基于用户的图形
Creating an user based graph
我是图形部分的新手。我最近尝试编写程序,它将采取顶点,边和顶点之间的连接的数量。
#include<iostream>
#include<queue>
#include<vector>
using namespace std ;
void add_edge(vector<int> adj[] , int v1 , int v2 )
{
adj[v1].push_back(v2);
adj[v2].push_back(v1);
}
void print_graph ( vector<int>adj[] , int vertices)
{
for(int i = 0 ; i < vertices ; i++)
{
cout<< "adjacency list of vertex " << i << " is : n" ;
cout<< "head -> " ;
for(auto it = adj[i].begin() ; it != adj[i].end() ; it++)
{
cout << *it << " -> " ;
}
cout<< "n" ;
}
}
int main()
{
int ver , ed , i , j , s , v1 , v2 , temp ;
cin >> ver >> ed ;
vector<int> adj[ver] ;
for(i = 0 ; i < ver ; i++)
{
cin>> v1 ;
for(i = 0 ; i < ed ; i++)
{
cin >> v2 ;
char ch = (char)v2 ;
if (v2 == 'n')
{
break ;
}
add_edge(adj , v1 , v2 ) ;
}
}
print_graph(adj , ver);
return 0 ;
}
我对用户按回车键时如何停止循环感到困惑。所以我试了这个。在我看来,看起来不那么酷,但合乎逻辑。
cin >> v2 ;
char ch = (char)v2 ;
if (v2 == 'n')
{
break ;
}
但是整个程序无法正常工作。请帮我弄清楚。
您将变量i
用于两个循环。在内for
循环之后,i
将始终等于ed
,如果小于ver
,则处于无限循环中。
为内部循环使用不同的变量,例如您已经定义的j
:
for (j = 0; j < ed; j++)
另请注意,虽然允许您将v2
与'n'
进行比较,但这不会检查用户是否按了 Enter 键。相反,您正在将v2
与换行符的 ASCII 值进行比较(即10
(。您可以更改分隔符,例如,仅在换行符处停止输入,请参阅此问题。
相关文章:
- C++如何通过用户输入删除列表元素
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 使用用户定义函数的字符串反转
- 用户定义函数中的指针和输入
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- C++图形类指针混淆
- 创建基于用户的图形
- 是否可以通过图形用户界面 (GUI) 与 Linux 命令行界面 (CLI) 进行交互
- 根据用户输入创建使用C 的图形
- QT 图形用户界面进度条
- 通过允许用户选择顶点数量,使用Boost库生成图形
- 带有 c++ 的图形用户界面.当我使用按钮时滞后
- C++图形用户界面和控制台应用程序
- 什么是CLSID?是图形用户界面吗?
- 库的拆分界面(带图形的国际象棋游戏等)与删除每个指针的用户定律
- 如果图形以邻接表的形式给出,如何扫描用户输入
- 独立于平台的图形用户界面
- 创建c++图形用户界面:最简单的方法是什么?