Вы можете определить класс для хранения веса и конечной точки ребра:
class Edge
{
public:
int endpoint;
int weight;
};
Естественно, это потребует модификации вашего Графика; adj нужно хранить Edgeскорее, чем ints. Если это невозможно, вы можете сопоставить ребра весам следующим образом:
std::vector<std::vector<int> > edgeWeights;
такой, что для данного ребра U-V, edgeWeights[u][v] это вес ребра U-V.
Точно так же вы могли бы также отобразить пары (то есть ребра) на веса: