В моем коде, я должен сделать это:проверка, чтобы увидеть, если вектор индекс пуст
if (edges[j].ConnectedToNode() != i) //problem line
{
edges.push_back(Edge(i, j, nodes[i].Position(), nodes[j].Position(), distanceToNode));
}
однако, есть вероятность того, что края [у] пока не существует. как я могу проверить это, чтобы избежать и индексировать исключение вне диапазона? (Это связано с узлами пути, по сути, если есть ребро, соединяющее J к I, я не хочу, чтобы добавить еще от I до J
Похоже, что вы смешиваете индексы. Вы используете j как индекс для ребер, а также как индекс для узлов. push_back добавит копию объекта Edge, который вы создаете, в массив ребер. Это не обязательно будет идти в j-й индекс. Подумайте об использовании библиотеки boost :: graph. –
вы абсолютно правы, я в середине обновления моего кода, и ребра меняются от вектора к вектору карт от индексов к ребрам. – SirYakalot