From: suresh.amritapuri on 11 Dec 2009 05:17 Hi Please see the code below. class my_visitor: public default_dfs_visitor { public: my_visitor(){} void finish_vertex(Vertex u, const Graph & g); vector<Vertex> getFinishingOrder(void){return finishingOrder;} //private: vector<Vertex> finishingOrder;//stores the vertices in the finishing order }; template<typename Vertex, typename Graph> void my_visitor::finish_vertex(Vertex u, const Graph & g){ finishingOrder.push_back(u); } main.cpp has the following: my_visitor vis; depth_first_search(g, visitor(vis));//to get the finishing order on vertices cout << "size of fin vector = " << vis.finishingOrder.size() << endl; My problem: size of the finishingOrder vector is zero outside the my_visitor::finish_vertex method. I checked its size inside the my_visitor::finish_vertex method and its value is increasing... Does I miss something in the understanding of the visitor concept? Thanks suresh -- [ See http://www.gotw.ca/resources/clcm.htm for info about ] [ comp.lang.c++.moderated. First time posters: Do this! ]
|
Pages: 1 Prev: unique id (uid, uuid, guid etc) class needed Next: Template typedef parameter |