how to construct a weighted graph in c++ using stl’s

**1> if you want to store just edges make**

**vector< pair< int, pair < int,int> > > edges.**

pair of int(weight) and pair(a,b)(edge from atob).

or you can make pair of pair(a,b)(edge from atob) and int(weight).

**2> if you want to store edges from perticular nodes.**

**vector< pair< int,int> > nodes[N];**

for edges a to b with weight w you can insert as **nodes[a].push_back(make _ pair(b,w))**

indicating a has edge to b with weight w.

this 2 are just simple examples there are many ways to do so.

If you do not know how vector and pair works use below links.

Link for PAIR || Link for Vector

EDIT: This approach will help you specially when you need to sort the edges according to weight.

you can use directly sort algorithm on vector as everything is mapped.

you can simply use:

N->no of nodes in the graph

```
vector<int> edges[N];//storing edges
vector<int> cost[N];//storing wieght
```

If you want to know the cost from a to b, in edges[a] search for b and using the index obtained extract the value from cost[a].