Changeset 6:b63d1bc367f7 in lemon-0.x for src/include/graph.h
- Timestamp:
- 12/16/03 17:19:08 (21 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@19
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/include/graph.h
r3 r6 5 5 //inline void *operator new(size_t s, void *p) { return p; } 6 6 #include <new> 7 #include <vector> 7 8 8 9 namespace NEGRO … … 41 42 class AllEdgeIterator; 42 43 43 class FirstAnythingTypeNode; 44 class FirstAnythingTypeNode; //Required by the unified First() function. 44 45 45 46 friend class NodeIterator; … … 392 393 393 394 Graph() : _FST(this) {} 395 396 // MAPS: 397 template<class T> class NodeMap 398 { 399 Graph<N,E> *G; 400 vector<T> map; 401 402 public: 403 typedef T value_type; 404 void Set(NodeIterator i, const T &t) {map[i.Index()]=t;} 405 T &Get(NodeIterator i) {return map[i.Index()];} 406 T &operator[](NodeIterator i) {return map[i.Index()];} 407 408 void update() { map.resize(G->OldGraph<N,E>::NodeMax());} 409 410 NodeMap(Graph<N,E> &Gr) : map(Gr.OldGraph<N,E>::NodeMax()) { G=&Gr ;} 411 412 }; 413 414 template<class T> class EdgeMap 415 { 416 Graph<N,E> *G; 417 vector<T> map; 418 419 public: 420 typedef T value_type; 421 void Set(NodeIterator i, const T &t) {map[i.Index()]=t;} 422 T &Get(NodeIterator i) {return map[i.Index()];} 423 T &operator[](NodeIterator i) {return map[i.Index()];} 424 425 void update() 426 { map.resize(Gr.OldGraph<N,E>::edge_block_num*EDGE_BLOCK_SIZE);} 427 428 EdgeMap(Graph<N,E> &Gr) 429 :map(Gr.OldGraph<N,E>::edge_block_num*EDGE_BLOCK_SIZE) 430 { G=&Gr ;} 431 432 }; 433 394 434 }; 395 435
Note: See TracChangeset
for help on using the changeset viewer.