c++ - How can I initialise the vector of vectors of ints? -
if have 2-d vector (basically representing graph first column being initial vertex , second column being final vertex), this, vector<vector<int> > myvec;
and want store this,
0 -> 1 2 1 -> 2 3 2 -> 3 4 3 -> 4 5 5 -> 1 2 if want initialise myvec, is, total number of rows (number of vertices) , can insert second vertex @ appropriate position, i.e. after initialisation (if enter number of vertices 6), want this,
0 -> 1 -> 2 -> 3 -> 4 -> 5 -> and can insert appropriate edge using,
myvec[startingvertex].push_back(endingvertex) // starting vertex , ending vertex taken input how can it? thanks!
edit: have:
class graph { int vertices; vector<vector<int> > edges; } in main, following
int main (void) { int i,n; cout<<"how many vertices wish enter\n"; cin>>n; graph *mygraph = new graph; mygraph->vertices = n; mygraph->edges // how can initialise here? ......... // rest of code } can me above commented question?
thanks!
// create myvec 6 elements in it. vector<vector<int> > myvec(6); // add items first item of myvec myvec[0].push_back(1); myvec[0].push_back(2); // add items sixth item of myvec myvec[5].push_back(10); myvec[5].push_back(25); update
implement constructor of graph follows:
class graph { public: grapah(int n) : edges(n) {} vector<vector<int> > edges; }; and use as:
graph *mygraph = new graph(n); you don't need member variable vertices since edges.size() number of vertices.
Comments
Post a Comment