【发布时间】:2018-09-13 04:29:10
【问题描述】:
void defineEdge()
{
char vertex1, vertex2;
int charToInt = 0;
while (charToInt != -1)
{
cout << "Define an edge by listing a pair of vertices (-1 to stop): ";
cin >> vertex1 >> vertex2;
cin.ignore(256, '\n');
charToInt = vertex1 - '0';
// getVertexIndex() eventaully returns the index representing
// [index of vertex1][index of vertex2] in 1-D array
// Assign 1 to represent the directed connection between 2 vertices
graphMatrix[getVertexIndex(vertex1, vertex2)] = 1;
}
}
这是代表图形类的矩阵的成员函数部分。 该矩阵是未加权有向图的邻接矩阵。 该矩阵被动态分配为一维数组并使用行主要顺序来访问所需的索引。
我正在尝试获取如下顶点来定义边:
通过列出一对顶点来定义一条边(-1 停止): A B 通过列出一对顶点来定义一条边(-1 停止): B A 通过列出一对顶点来定义一条边(-1 表示停止):-1 A但是,每当我输入 -1 时都会出现调试错误
运行时检查失败 #3 - 变量 'vertex2Index' 在未初始化的情况下被使用。
我想知道是否有正确的方法来获取整数值(例如 -1) char 变量(例如 vertex1)
编辑:还有另一个整数列表用于存储顶点,所以我想使用getVertexIndex()获取vertex1和vertex2来获取对应索引的索引。
【问题讨论】:
-
嗯。 “-1”不是已经是2个字符了吗?
-
@FrançoisAndrieux 你不能把
A读成int。 -
@NathanOliver 谢谢,我没有注意到示例输入。
-
使用
cin.peek()查看流中的下一个字符是否为'-',如果是,则读取int,否则读取char。 -
@Remy Lebeau 谢谢你,我认为这会解决问题。