Index: src/work/marci/iterator_bfs_demo.cc
===================================================================
--- src/work/marci/iterator_bfs_demo.cc	(revision 301)
+++ src/work/marci/iterator_bfs_demo.cc	(revision 304)
@@ -21,7 +21,7 @@
   EdgeNameMap(Graph& _graph, NodeNameMap& _node_name_map) : 
     graph(_graph), node_name_map(_node_name_map) { }
-  string get(typename Graph::Edge e) const { 
+  string operator[](typename Graph::Edge e) const { 
     return 
-      (node_name_map.get(graph.tail(e))+"->"+node_name_map.get(graph.head(e)));
+      (node_name_map[graph.tail(e)]+"->"+node_name_map[graph.head(e)]);
   }
 };
@@ -96,11 +96,11 @@
     cout << "bfs and dfs iterator demo on the directed graph" << endl;
     for(GW::NodeIt n(gw); gw.valid(n); gw.next(n)) { 
-      cout << node_name.get(n) << ": ";
+      cout << node_name[n] << ": ";
       cout << "out edges: ";
       for(GW::OutEdgeIt e(gw, n); gw.valid(e); gw.next(e)) 
-	cout << edge_name.get(e) << " ";
+	cout << edge_name[e] << " ";
       cout << "in edges: ";
       for(GW::InEdgeIt e(gw, n); gw.valid(e); gw.next(e)) 
-	cout << edge_name.get(e) << " ";
+	cout << edge_name[e] << " ";
       cout << endl;
     }
@@ -112,13 +112,13 @@
       //cout << "edge: ";
       if (gw.valid(bfs)) {
-	cout << edge_name.get(bfs) << /*endl*/", " << 
-	  node_name.get(gw.aNode(bfs)) << 
-	  (bfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
-	  node_name.get(gw.bNode(bfs)) << 
+	cout << edge_name[bfs] << /*endl*/", " << 
+	  node_name[gw.aNode(bfs)] << 
+	  (bfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
+	  node_name[gw.bNode(bfs)] << 
 	  (bfs.isBNodeNewlyReached() ? ": is newly reached." : 
 	   ": is not newly reached.");
       } else { 
 	cout << "invalid" << /*endl*/", " << 
-	  node_name.get(bfs.aNode()) << 
+	  node_name[bfs.aNode()] << 
 	  (bfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
 	  
@@ -146,13 +146,13 @@
       //cout << "edge: ";
       if (gw.valid(dfs)) {
-	cout << edge_name.get(dfs) << /*endl*/", " << 
-	  node_name.get(gw.aNode(dfs)) << 
-	  (dfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
-	  node_name.get(gw.bNode(dfs)) << 
+	cout << edge_name[dfs] << /*endl*/", " << 
+	  node_name[gw.aNode(dfs)] << 
+	  (dfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
+	  node_name[gw.bNode(dfs)] << 
 	  (dfs.isBNodeNewlyReached() ? ": is newly reached." : 
 	   ": is not newly reached.");
       } else { 
 	cout << "invalid" << /*endl*/", " << 
-	  node_name.get(dfs.aNode()) << 
+	  node_name[dfs.aNode()] << 
 	  (dfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
 	  
@@ -172,11 +172,11 @@
     cout << "bfs and dfs iterator demo on the reversed directed graph" << endl;
     for(GW::NodeIt n(gw); gw.valid(n); gw.next(n)) { 
-      cout << node_name.get(n) << ": ";
+      cout << node_name[n] << ": ";
       cout << "out edges: ";
       for(GW::OutEdgeIt e(gw, n); gw.valid(e); gw.next(e)) 
-	cout << edge_name.get(e) << " ";
+	cout << edge_name[e] << " ";
       cout << "in edges: ";
       for(GW::InEdgeIt e(gw, n); gw.valid(e); gw.next(e)) 
-	cout << edge_name.get(e) << " ";
+	cout << edge_name[e] << " ";
       cout << endl;
     }
@@ -188,13 +188,13 @@
       //cout << "edge: ";
       if (gw.valid(bfs)) {
-	cout << edge_name.get(bfs) << /*endl*/", " << 
-	  node_name.get(gw.aNode(bfs)) << 
-	  (bfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
-	  node_name.get(gw.bNode(bfs)) << 
+	cout << edge_name[bfs] << /*endl*/", " << 
+	  node_name[gw.aNode(bfs)] << 
+	  (bfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
+	  node_name[gw.bNode(bfs)] << 
 	  (bfs.isBNodeNewlyReached() ? ": is newly reached." : 
 	   ": is not newly reached.");
       } else { 
 	cout << "invalid" << /*endl*/", " << 
-	  node_name.get(bfs.aNode()) << 
+	  node_name[bfs.aNode()] << 
 	  (bfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
 	  
@@ -222,13 +222,13 @@
       //cout << "edge: ";
       if (gw.valid(dfs)) {
-	cout << edge_name.get(dfs) << /*endl*/", " << 
-	  node_name.get(gw.aNode(dfs)) << 
-	  (dfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
-	  node_name.get(gw.bNode(dfs)) << 
+	cout << edge_name[dfs] << /*endl*/", " << 
+	  node_name[gw.aNode(dfs)] << 
+	  (dfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
+	  node_name[gw.bNode(dfs)] << 
 	  (dfs.isBNodeNewlyReached() ? ": is newly reached." : 
 	   ": is not newly reached.");
       } else { 
 	cout << "invalid" << /*endl*/", " << 
-	  node_name.get(dfs.aNode()) << 
+	  node_name[dfs.aNode()] << 
 	  (dfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
 	  
@@ -248,11 +248,11 @@
     cout << "bfs and dfs iterator demo on the undirected graph" << endl;
     for(GW::NodeIt n(gw); gw.valid(n); gw.next(n)) { 
-      cout << node_name.get(n) << ": ";
+      cout << node_name[n] << ": ";
       cout << "out edges: ";
       for(GW::OutEdgeIt e(gw, n); gw.valid(e); gw.next(e)) 
-	cout << edge_name.get(e) << " ";
+	cout << edge_name[e] << " ";
       cout << "in edges: ";
       for(GW::InEdgeIt e(gw, n); gw.valid(e); gw.next(e)) 
-	cout << edge_name.get(e) << " ";
+	cout << edge_name[e] << " ";
       cout << endl;
     }
@@ -268,13 +268,13 @@
       //cout << "edge: ";
       if (gw.valid(GW::OutEdgeIt(bfs))) {
-	cout << edge_name.get(GW::OutEdgeIt(bfs)) << /*endl*/", " << 
-	  node_name.get(gw.aNode(bfs)) << 
-	  (bfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
-	  node_name.get(gw.bNode(bfs)) << 
+	cout << edge_name[GW::OutEdgeIt(bfs)] << /*endl*/", " << 
+	  node_name[gw.aNode(bfs)] << 
+	  (bfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
+	  node_name[gw.bNode(bfs)] << 
 	  (bfs.isBNodeNewlyReached() ? ": is newly reached." : 
 	   ": is not newly reached.");
       } else { 
 	cout << "invalid" << /*endl*/", " << 
-	  node_name.get(bfs.aNode()) << 
+	  node_name[bfs.aNode()] << 
 	  (bfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
 	  
@@ -302,13 +302,13 @@
       //cout << "edge: ";
       if (gw.valid(GW::OutEdgeIt(dfs))) {
-	cout << edge_name.get(GW::OutEdgeIt(dfs)) << /*endl*/", " << 
-	  node_name.get(gw.aNode(dfs)) << 
-	  (dfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
-	  node_name.get(gw.bNode(dfs)) << 
+	cout << edge_name[GW::OutEdgeIt(dfs)] << /*endl*/", " << 
+	  node_name[gw.aNode(dfs)] << 
+	  (dfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
+	  node_name[gw.bNode(dfs)] << 
 	  (dfs.isBNodeNewlyReached() ? ": is newly reached." : 
 	   ": is not newly reached.");
       } else { 
 	cout << "invalid" << /*endl*/", " << 
-	  node_name.get(dfs.aNode()) << 
+	  node_name[dfs.aNode()] << 
 	  (dfs.isANodeExamined() ? ": is examined, " : ": is not examined, ") << 
 	  
