Я пытаюсь реализовать Floryd алгоритм в C++Floyd алгоритм в C++
Я это уже:
средство узел, где край начинается.
b означает узел, на котором заканчивается край.
t означает время края.
m означает количество ребер.
n означает количество узлов.
typedef pair<int,int> nodo;
vector <nodo> g[100000];
void preguntarFloyd()
{
g->clear();
int m;
int contador = 0;
cin m;
for(int k = 0; k < m ; k++)
{
int a, b, t;
cin >> a >> b >> t;
g[a].push_back(nodo(b,t));
}
for (int k = 0; k < n; k++)
{
for(int i = 0; i < n; i++)
{
for(int j = 0; j <n; j++)
{
if(g[i][k].second + g[k][j].second < g[i][j].second)
{
g[i][j].second = g[i][k].second + g[k][j].second;
}
}
}
}
}
Когда я пытаюсь код, программа происшествий говоря: «Выражение: Вектор индекс вне диапазона»
Я надеюсь, что вы, ребята, можете мне помочь, так как я не был в состоянии решить эту проблему!
Просить людей обнаружить ошибки в коде не особенно продуктивно. Вы должны использовать отладчик (или добавить заявления печати), чтобы изолировать проблему, отслеживая ход вашей программы и сравнивая ее с тем, что вы ожидаете. Как только двое расходятся, вы нашли свою проблему. (Затем, если необходимо, вы должны создать [минимальный тестовый сценарий] (http://sscce.org).) –
Что такое 'n'? Какие материалы вы предоставляете при запуске? – Dave
, где это происходит? какой индекс он терпит неудачу? что такое 'n'? –