diff -r ee5959aa4410 -r c280de819a73 src/work/alpar/rw_nonref_map.cc --- a/src/work/alpar/rw_nonref_map.cc Sun Apr 17 18:57:22 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -#include -#include - -using namespace lemon; - -template -class CinCoutMap -{ -public: - typedef GG Graph; - typedef typename GG::Edge Edge; - - typedef Edge Key; - typedef TT Value; - - class RefType - { - Graph &G; - Edge e; - public: - RefType(Graph &_G,Edge _e) : G(_G), e(_e) { } - - operator Value() const - { - Value tmp; - std::cout << G.id(G.source(e)) << "->" - << G.id(G.target(e)) << ": "; - std::cin >> tmp; - return tmp; - } - Value operator = (Value v) const - { - std::cout << G.id(G.source(e)) << "->" - << G.id(G.target(e)) << ": " << v << '\n'; - return v; - } - }; - -private: - Graph &G; -public: - CinCoutMap(Graph &_G) : G(_G) { } - RefType operator[] (Edge e) const { return RefType(G,e);} -}; - -template -class NullMap -{ -public: - typedef K Key; - typedef T Value; - - class RefType - { - Value val; - public: - RefType(Value v) : val(v) { } - operator Value() const { return val; } - Value operator = (Value v) const { return val; } - }; - -private: - Value val; -public: - NullMap(Value v) : val(v) { } - RefType operator[] (Key e) const { return RefType(v);} -}; - -int main() -{ - typedef SmartGraph Graph; - typedef Graph::NodeIt NodeIt; - typedef Graph::OutEdgeIt OutEdgeIt; - typedef Graph::EdgeIt EdgeIt; - - Graph G; - - CinCoutMap map(G); - - Graph::EdgeMap emap(G); - - for(int i=0;i<3;i++) G.addNode(); - - for(NodeIt n(G);G.valid(n);G.next(n)) - for(NodeIt m(G);G.valid(m);G.next(m)) if(n!=m) - G.addEdge(n,m); - - //for(OutEdgeIt e(G,NodeIt(G));G.valid(e);G.next(e)) - - for(EdgeIt e(G);G.valid(e);G.next(e)) emap[e] = map[e]; - - std::cout << '\n'; - - for(EdgeIt e(G);G.valid(e);G.next(e)) map[e] = emap[e]; - -} -