Я хочу пропустить большие веса в случае нескольких ребер. Я думаю, что код можно оптимизировать, если я получу доступ к весу непосредственно между ребрами u и v. Код взят из алгоритма Дейкстры с использованием очереди приоритетов. Я могу повторить и проверить, но я думаю, что это не эффективно. Как я могу оптимизировать код?
void Graph::addEdge(long long int u, long long int v, long long int weight){
list<pair<long long int,long long int> >::iterator i;
int flag = 0;
for(i = adj[u].begin(); i!= adj[u].end(); ++i){
if((*i).first == v && weight>(*i).second){
flag = 1;
break;
}
}
if(flag == 1){
return;
}
adj[u].push_back(make_pair(v, weight));
adj[v].push_back(make_pair(u, weight));
}